2012-07-03 63 views
1

我有一個地獄的時間想出一個體面的方式使這個if語句搜索這些代碼的文件。我設置的文本文件,從這樣看:preg_match和reg表達式使用字母數字,逗號,句點,感嘆號等

myfile.txt的

r) 
0Y7 
1a6 
q. 
@g 
@(
#a 
!P 
T[ 
V} 
0, 

這裏是我竟能簡短。

$subject = file_get_contents(fvManager_Path . 'myfile.txt'); 
if (preg_match('/^[a-zA-Z0-9,]+$/',$result['fmbushels_itemCode'], $subject)) { 

基本上我試圖逐行搜索文本文件來查看整個字符串是否存在。它們也是區分大小寫的。

$ result ['fmbushels_itemCode']來自sql查詢,並且始終返回文本中上面的代碼。

我很感激任何幫助。如果有人知道這樣做或不同的命令的一個更好的辦法,我願意給這一個鏡頭,以及:)

編輯:

private function _fvShareBushels() { 
$subject = file_get_contents(fvManager_Path . 'myfile.txt'); 

if (count($vShareArray) > 0) { 
$vCntMoves = count($vShareArray); 

for ($vI = 0;$vI < $vRunMainLoop;$vI++) { 
sell $result['fmbushels_itemCode']);  
} 
} 
} 

這是一個很大的代碼片段。由於郵差限制,我不得不最大化。我可以合作的領域是:如果你想要做的逐行

if (count($vShareArray) > 0 && $result['fmbushels_itemCode'] **is not in** $subject) { 

回答

1

,使用文件()函數:

if (count($vShareArray) > 0) { 

如果我能做出這樣的東西等。

$f = file(fvManager_Path . 'myfile.txt'); 
foreach($f AS $line){ 
    // $line is current line at file 
} 

我不確定你是否完全理解preg_match是如何工作的。第一個參數是正則表達式模式,第二個參數是要匹配的模式,第三個參數是匹配數組。因此,對於在第二個參數中匹配的每個有效模式,都會創建一個新的數組索引。

我不是百分之百想要完成的。您是否試圖查看該文件中是否存在$result['fmbushels_itemCode']

如果上面是你只是只需要像做正確的情況下:

$f = file('myfile.txt'); 
array_map('trim', $f); 
if(in_array($result['fmbushels_itemCode'], $f)){ 
    // success 
} 
+0

對不起添加註釋不具備的功能張貼類似的問題本身 –

+0

請看編輯:在主要問題:) –

+0

我想我可能需要恰恰相反。而不是foreach($ f AS $ vShare ['item']){我需要像foreach($ f!AS $ vShare ['item']){但是!AS給出一個錯誤 –

相關問題