2011-04-16 38 views
1

我想在一個大的列表文件中找到一個單詞。

然後,如果和當這個單詞被發現,採取該單詞被發現在列表文件的整行?

到目前爲止,我還沒有看到任何PHP字符串函數來做到這一點

回答

1

使用線分隔的正則表達式查找的單詞,然後你的對手將包含整條生產線。

喜歡的東西:

preg_match('^.*WORD.*$, $filecontents, $matches); 

然後$matches將有地方的全行才發現WORD

1

你可以使用的preg_match:

$arr = array(); 
preg_match("/^.*yourSearch.*$/", $fileContents, $arr); 

$arr然後將包含匹配。

0

嘗試這一個:

$searhString = "search"; 
$result = preg_grep("/^.*{$searhString}.*$/", file('/path/to/your/file.txt')); 
print_r($result); 

說明:

  • file()將讀取您的文件,併產生線
  • preg_grep()將返回的數組元素的陣列,其中匹配圖案被發現
  • $result是生成的數組。
1
$path = "/path/to/wordlist.txt"; 
$word = "Word"; 

$handle = fopen($path,'r'); 
$currentline = 1; //in case you want to know which line you got it from 
while(!feof($handle)) 
{ 
    $line = fgets($handle); 
    if(strpos($line,$word)) 
    { 
     $lines[$currentline] = $line; 
    } 
    $currentline++; 
} 
fclose($handle); 

如果你想只找一個單行的詞出現,然後,而不是將其保存到一個數組,某處,只是break保存比賽作出後。

這應該對任何大小的文件都很快(在大文件上使用文件()可能不好)

相關問題