2014-01-16 4 views
0

Мне не удалось вырваться из цикла foreach. Я думаю, что структура правильная, что-то не так с кодом. Пожалуйста, дайте мне знать, в чем проблема, (а не только рабочий код), я хочу учиться на своих ошибках. СпасибоНарушение петли foreach

Я использую простой html dom для царапания некоторой части информации, и я хочу, чтобы цикл прерывался при согласовании условия. Вот мой код:

<?php 
$mainjob = file_get_html('link to scrap here'); 
$newarr = array(); 
foreach($mainjob->find('td[valign=middle]') as $d) { 
    $data = $d->innertext; 
    $newarr[] = $data; 
    echo $data . "<br>"; 
    if($data == "Job Opportunity Description:") { 
     break; 
    } 

} 
print_r($newarr); 
+0

Каковы выходные данные эха $ – sas

+0

Его сбрасываемые данные, которые находятся на выходе – codegeek

+0

, если $ data не будет равный конкретной строке, чем это не могло бы нарушить этот цикл. – sas

ответ

0

1) Я думаю, ваши $ данные == «Работа Opportunity Описание:» Состояние было не так, поэтому не вызвал перерыв;

2) Поместите свой $ mainjob-> найти ('TD [VALIGN = середину]') из ваших условий цикла, поэтому он не дозвонился каждая итерация:

$tds = $mainjob->find('td[valign=middle]'); 
foreach($td as $d){} 

3) Почему вы добавляете скобки к переменной $ newarr?

4) Может быть, ваша строка данных $ все еще содержит HTML-тег (которые не показаны на эхо из-за ваш браузер .. поэтому условие будет возвращать ложь.

0

Проблема заключается в белом пространстве я использовал trim(), чтобы обрезать пробел, и он работает. Я рекомендую ответ от Аймана Сафади. Спасибо.

Смежные вопросы