Не работает цикл.

soulilya
На сайте с 08.10.2013
Offline
47
482

Доброго времени суток. Подскажите пожалуйста по скрипту. Не работает цикл.


<?php
header('Content-Type: text/html; charset=utf-8');
ini_set("max_execution_time", "0");
include "C:/xampp/php/scripts/phpQuery-onefile.php"; /*Плагин для парсинга ДОМ*/
$lines = file("3.csv", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); /*Перебираем список файлов*/
foreach($lines as $line){
$file = file_get_contents("$line");
$doc = phpQuery::newDocument($file);
$elements = array();
$x = 0;
$y = 6;
foreach(pq('div.object_info_block') as $block){ /*Цикл, найди в этом блоке...*/
$elements[$x] = pq($block)->find('td.td_1 + td:eq(' . $y . ')')->text(); /*Вот эту штуку*/
if (is_numeric($elements[$x])) { /*А эта штука номер?*/
echo $elements[$x] . "<br>"; /* Да-Выведи номер*/
}else{ /*Нет-считай дальше */
$y++;
}
$x++;
}
}
?>

В конце скрипт выполняется и все. Цикл с прибавлением $y не идет и далее не считает.

siv1987
На сайте с 02.04.2009
Offline
427
#1

Что значит не работает? Вы бы лучше нормально отформатировали код, чем писать эти комментарии

soulilya:
Цикл с прибавлением $y не идет и далее не считает.

var_dump($elements[$x]);

D
На сайте с 14.01.2007
Offline
153
#2

в нормальном виде:

<?php
header('Content-Type: text/html; charset=utf-8');
ini_set("max_execution_time", "0");
include "C:/xampp/php/scripts/phpQuery-onefile.php"; /*Плагин для парсинга ДОМ*/
$lines = file("3.csv", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); /*Перебираем список файлов*/
foreach ($lines as $line) {
$file = file_get_contents("$line");
$doc = phpQuery::newDocument($file);
$elements = array();
$x = 0;
$y = 6;
foreach (pq('div.object_info_block') as $block) { /*Цикл, найди в этом блоке...*/
$elements[$x] = pq($block)->find('td.td_1 + td:eq(' . $y . ')')->text(); /*Вот эту штуку*/
if (is_numeric($elements[$x])) { /*А эта штука номер?*/
echo $elements[$x] . "<br>"; /* Да-Выведи номер*/
} else { /*Нет-считай дальше */
$y++;
}
$x++;
}
}
?>
soulilya
На сайте с 08.10.2013
Offline
47
#3

Благодарю за критику, господа. Ок. Буду от ныне форматировать как положено.

Ну то есть исполнение кода проходит до конца и на этом завершается. Мне надо бы чтоб он вернулся к

$elements[$x] = pq($block)->find('td.td_1 + td:eq(' . $y . ')')->text();

и прибавил $y = $y + 1

в $elements[$x] содержится спарсенное значение таблицы, если оно текстовое то нужно опуститься вниз на ячейку и проверить ее, пока там не окажется число.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий