$res = file_get_contents ("search.php");
// открываю фаил с кодом в переменную.
$regs = preg_grep('/>.підприємства більше./', $res);
//пытаюсь вернуть массив того, что нашел
echo $regs[0];
//пытаюсь это вывести.
preg_grep возвращает массив, но возникает Warning: preg_grep() expects parameter 2 to be array, string given in Z:\home\local\alexandr\search.php on line 73.
Вобщем чего делать то для получения кода, его проверки и вывода.
Спустя 7 минут, 58 секунд (28.10.2011 - 17:01) Игорь_Vasinsky написал(а):
Цитата |
reg_grep() expects parameter 2 to be array, string |
2й аргумент должен быть массивом - а ты дал - строку, а есть ещё 3й - тот массив в который совпадения заносятся.
preg_gre - устаревшая
preg_match_all() - юзай.
Что ищешь то?
Спустя 9 минут, 25 секунд (28.10.2011 - 17:10) oleg_46 написал(а):
Задача - по запросу методом ГЕТ, найти текст на странице и вывести его. В середине рег. выражения я указал явный текст, вместо него будет переменная полученная ГЕТом. В регулярке я хочу, что бы к выборке присоединялся текст с двух сторон до значка тега. Насчет preg_match_all, ща буду пробовать. Чето думал, что она тоже возвращает тру и фалс.
Спустя 13 минут, 19 секунд (28.10.2011 - 17:24) Winston написал(а):
$res = file_get_contents ("search.php");
preg_match_all('/>.підприємства більше./', $res, $matches);
print_r($matches);
preg_grep используется для поиска по массиву. Если ты хочешь ее использовать то нужно код переписать
$res = file("search.php");
$matches = preg_grep('/>.підприємства більше./', $res);
print_r($matches);
Цитата (Игорь_Vasinsky @ 28.10.2011 - 17:01) |
preg_gre - устаревшая |
С какого перепугу ? :blink:
Цитата (Игорь_Vasinsky @ 28.10.2011 - 17:01) |
есть ещё 3й - тот массив в который совпадения заносятся |
Эта ф-я возвращает массив, а третий аргумент служит для указания инверсии (достать то, что не попало под шаблон)
Спустя 15 минут, 50 секунд (28.10.2011 - 17:40) oleg_46 написал(а):
Ну ладно, допустим пишу
$res = file("search.php");
preg_match_all('/>.$keywords.</', $res, $matches);
print_r($matches);
подскажите как правильно вписать переменную, а если пишешь вместо неё "підприємства більше", то выдает аррей ареев.
$res = file("search.php");
preg_match_all('/>.$keywords.</', $res, $matches);
print_r($matches);
подскажите как правильно вписать переменную, а если пишешь вместо неё "підприємства більше", то выдает аррей ареев.
Спустя 3 минуты, 38 секунд (28.10.2011 - 17:43) Игорь_Vasinsky написал(а):
Winston
я с ерег перепутал
я с ерег перепутал
Спустя 49 секунд (28.10.2011 - 17:44) Winston написал(а):
Для preg_match_all нужно строку подавать, а не массив ! Почитай, что делает file()
$res = file_get_contents("search.php");
preg_match_all('/>'.$keywords.'</', $res, $matches);
print_r($matches);
Спустя 18 минут, 52 секунды (28.10.2011 - 18:03) oleg_46 написал(а):
Выдает пустой массив. Может чего то я не так сделал. Опишу ситуацию целиком.
Есть форма из которой отправляю ГЕТом запрос. Усть xml файлик. в начале страницы search.php я его парсю . Получаю search.php с урлом ГЕТ запроса и тегами с текстом. Структура тегов такая.
Ну и т.д. такой же структуры.
Пытаюсь получить весь текст от <NEWS_PIECE> до </NEWS_PIECE>, если между ними есть искомый кусок.
Пишу как советовали
Но в ответ пустой массив, хотя вводимый текст есть по любому.
Есть форма из которой отправляю ГЕТом запрос. Усть xml файлик. в начале страницы search.php я его парсю . Получаю search.php с урлом ГЕТ запроса и тегами с текстом. Структура тегов такая.
<NEWS_PIECE>
<LANGUAGE>1</LANGUAGE><br>
<DATE>2011-10-03 12:04:42</DATE><br>
<NAME>Директор ТОВ не заплатив 229 працівникам</NAME><br>
<SOURCE>http://www.zib.com.ua/ua/5414.html</SOURCE><br>
<SOURCE_NAME>Газета Закон і Бізнес</SOURCE_NAME><br>
<ABSTRACT>Прокуратурою Київського району м. Харкова закінчено досудове слідство у кримінальній справі, порушеній стосовно директора одного з товариств з обмеженою відповідальністю за фактом безпідставної невиплати заробітної плати 229 працівникам підприємства більше, ніж за місяць, за ч.1 ст.175 Кримінального кодексу України.</ABSTRACT><br>
</NEWS_PIECE>
Ну и т.д. такой же структуры.
Пытаюсь получить весь текст от <NEWS_PIECE> до </NEWS_PIECE>, если между ними есть искомый кусок.
Пишу как советовали
$res = file_get_contents("search.php");
preg_match_all('/>'.$keywords.'</', $res, $matches);
print_r($matches);
Но в ответ пустой массив, хотя вводимый текст есть по любому.
Спустя 4 минуты, 16 секунд (28.10.2011 - 18:07) Winston написал(а):
У меня все работает
Свернутый текст
$str = '<NEWS_PIECE>
<LANGUAGE>1</LANGUAGE><br>
<DATE>2011-10-03 12:04:42</DATE><br>
<NAME>Директор ТОВ не заплатив 229 працівникам</NAME><br>
<SOURCE>http://www.zib.com.ua/ua/5414.html</SOURCE><br>
<SOURCE_NAME>Газета Закон і Бізнес</SOURCE_NAME><br>
<ABSTRACT>Прокуратурою Київського району м. Харкова закінчено досудове слідство у кримінальній справі, порушеній стосовно директора одного з товариств з обмеженою відповідальністю за фактом безпідставної невиплати заробітної плати 229 працівникам підприємства більше, ніж за місяць, за ч.1 ст.175 Кримінального кодексу України.</ABSTRACT><br>
</NEWS_PIECE>';
$keywords = 'працівникам';
preg_match_all('#(?='.$keywords.')(.*)#isu', $str, $matches);
echo '<pre>'.print_r($matches,1).'</pre>';
Спустя 25 минут, 20 секунд (28.10.2011 - 18:32) oleg_46 написал(а):
Странно.
По идее должно работать.
А выводиться
Array
(
[0] => Array
(
)
[1] => Array
(
)
)
По идее должно работать.
$str = file_get_contents("search.php");//получает текст
preg_match_all('#(?='.$keywords.')(.*)#isu', $str, $matches);//выборка
echo '<pre>'.print_r($matches,1).'</pre>';//выводим
А выводиться
Array
(
[0] => Array
(
)
[1] => Array
(
)
)
Спустя 3 минуты, 14 секунд (28.10.2011 - 18:36) Winston написал(а):
Если у тебя кодировка не UTF-8 то убери модификатор u
Спустя 1 минута, 30 секунд (28.10.2011 - 18:37) oleg_46 написал(а):
utf-8
Спустя 2 минуты, 23 секунды (28.10.2011 - 18:40) oleg_46 написал(а):
Может file_get_contents не передает строку.
Спустя 5 минут, 14 секунд (28.10.2011 - 18:45) Winston написал(а):
Попробуй для начала выдрать все
$str = file_get_contents("search.php");//получает текст
preg_match_all('#(.*)#isu', $str, $matches);//выборка
echo '<pre>'.print_r($matches,1).'</pre>';//выводим
Спустя 9 минут, 59 секунд (28.10.2011 - 18:55) oleg_46 написал(а):
Array
(
[0] => Array
(
[0] => ";}
Это тот же арей. А дальше пхп текст кусками. Потому что читает сам себя. Может обработку производить на 3 странице.
else echo "<".$tag.">";
}
// Функция обработчик закрывающих тегов
function end_tag_handler($xml, $tag) {
echo "
";
}
// Функция обработчик текстового содержимого
function character_handler($xml, $data) {
echo $data;
}
xml_parse($xml, file_get_contents("last_news_xml.xml"));
?>
'.print_r($matches,1).'
';//выводим ?> [1] => ) [1] => Array ( [0] => ";} else echo "<".$tag.">"; } // Функция обработчик закрывающих тегов function end_tag_handler($xml, $tag) { echo "
"; } // Функция обработчик текстового содержимого function character_handler($xml, $data) { echo $data; } xml_parse($xml, file_get_contents("last_news_xml.xml")); ?> '.print_r($matches,1).'';//выводим ?> [1] => ) )
(
[0] => Array
(
[0] => ";}
Это тот же арей. А дальше пхп текст кусками. Потому что читает сам себя. Может обработку производить на 3 странице.
else echo "<".$tag.">";
}
// Функция обработчик закрывающих тегов
function end_tag_handler($xml, $tag) {
echo "
";
}
// Функция обработчик текстового содержимого
function character_handler($xml, $data) {
echo $data;
}
xml_parse($xml, file_get_contents("last_news_xml.xml"));
?>
'.print_r($matches,1).'
';//выводим ?> [1] => ) [1] => Array ( [0] => ";} else echo "<".$tag.">"; } // Функция обработчик закрывающих тегов function end_tag_handler($xml, $tag) { echo "
"; } // Функция обработчик текстового содержимого function character_handler($xml, $data) { echo $data; } xml_parse($xml, file_get_contents("last_news_xml.xml")); ?> '.print_r($matches,1).'';//выводим ?> [1] => ) )
Спустя 12 минут, 39 секунд (28.10.2011 - 19:07) Winston написал(а):
Цитата (oleg_46 @ 28.10.2011 - 18:55) |
Потому что читает сам себя |
Это бред
Сделай отдельный файл в котором будет хранится xml
Спустя 22 часа, 26 минут, 25 секунд (29.10.2011 - 17:34) oleg_46 написал(а):
Так у меня и есть отдельный файл last_news_xml.xml. Он парсится кодом, который лежит в search.php. В итоге получается search.php с пхп кодом и структурой тегов, которая получилась в результате парсинга.