Я хочу найти слово в большом файле списка.
Затем, если и когда это слово будет найдено, взять всю строку файла списка, в котором это слово было найдено?
до сих пор я не видел никаких строковых функций PHP для этого
Я хочу найти слово в большом файле списка.
Затем, если и когда это слово будет найдено, взять всю строку файла списка, в котором это слово было найдено?
до сих пор я не видел никаких строковых функций PHP для этого
Используйте регулярное выражение с разделителями строк, чтобы найти слово, тогда ваше совпадение будет содержать всю строку.
Что-то типа:
preg_match('^.*WORD.*$, $filecontents, $matches);
Тогда $matches
будет иметь полные строки мест, которые он нашел WORD
Вы можете использовать preg_match:
$arr = array();
preg_match("/^.*yourSearch.*$/", $fileContents, $arr);
$arr
будет содержать совпадения.
$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
после совпадения.
Это должно быстро работать с файлами любого размера (использование file() для больших файлов, вероятно, не очень хорошо)
Попробуй это:
$searhString = "search";
$result = preg_grep("/^.*{$searhString}.*$/", file('/path/to/your/file.txt'));
print_r($result);
Объяснение:
$result
— результирующий массив.