Задать вопрос
prrrrrrr
@prrrrrrr
Верстаю сразу на PHP.

Как сделать цикл в парсере?

Подскажите, как сделать цикл в парсере?
Пример самого парсера:
<?
function Parse($p1, $p2, $p3) {
    $num1 = strpos($p1, $p2);
    if ($num1 === false) return 0;
    $num2 = substr($p1, $num1);
    return strip_tags(substr($num2, 0, strpos($num2, $p3)));
}
 
$String = file_get_contents('http://site.com/');
echo Parse($String, '<div class="mInfo">', '</div>');
?>


Пробую таким образом, не срабатывает:
$String = file_get_contents('http://site.com/');
foreach ($String as $Strings) {
echo Parse($Strings, '<div class="mInfo">', '</div>'); }
  • Вопрос задан
  • 191 просмотр
Подписаться 2 Простой 11 комментариев
Решения вопроса 1
SnyMaster
@SnyMaster
Будет работа пишите...
Если вы хотите найти все вхождения искомой строки в полученном результате, то передавайте результат в функцию парсера по ссылке, и при поиске обрезайте ту часть , где Вы уже нашли требуемую поисковую строку

Вот так будет работать Ваш код
function Parse(&$p1, $p2, $p3) {
    $num1 = strpos($p1, $p2);
    if ($num1 === false) return 0;
    $num2 = substr($p1, $num1);
    $num3 = strpos($num2, $p3);
    if ($num3 === false) {
        return 0;
    }
    $p1 = substr($num2, $num3 + strlen($p3) );    
    return strip_tags(substr($num2, 0, $num3));
}
$String = file_get_contents('http://site.com/');
while ($result = Parse($String, '<div class="mInfo">', '</div>')) {
echo $result; 
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы