У меня есть текстовый файл ... содержимое следующим образомPHP - поиск текстового файла для содержания
---> t11 ---> x1 --->
---> t22 ---> x2 --->
---> t33 ---> x3 --->
---> t24 ---> x2 --->
---> t35 ---> x3 --->
---> t46 ---> x4 --->
как я только поиск в первом столбце и вернуть те слова, которые имеют t2 в начале. .. любая помощь будет оценена ... я использую следующий код php ... но он только возвращает одно слово с t2 в начале, я хочу, чтобы он возвращал все слова с t2 в начале ...
<?php
$file = 'mytext.txt';
$searchfor = '---> t2';
// the following line prevents the browser from parsing this as HTML.
header('Content-Type: text/plain');
// get the file contents, assuming the file to be readable (and exist)
$contents = file_get_contents($file);
// escape special characters in the query
$pattern = preg_quote($searchfor, '/');
// finalise the regular expression, matching the whole line
$pattern = "/^.*$pattern.*\$/m";
// search, and store all matching occurences in $matches
if(preg_match_all($pattern, $contents, $matches)){
$strArray = explode('---> ',implode($matches[0]));
echo $strArray[1];
}
else{
echo "No matches found";
}
?>
выход должен быть чем-то вроде ...
---> t22
---> t24
использование 'FOPEN()'/'fgets()' вместо использования 'file_get_contents()', чтобы не загружать весь файл сразу, если у вас есть достаточно большой использовать файл –
файл '()' вместо использования 'file_get_contents()', если у вас есть небольшой файл. Это уже вернет вам массив с каждой строкой в нем. –
Я думаю, что ваши 'implode()' и 'explode()' меняются местами. По крайней мере, вы взорваетесь на '' ---> '', но я не знаю, откуда эта строка. Поэтому, я думаю, вы хотите «implode()» с ним. –