2014-02-14 6 views
-2

Я пытаюсь получить <td> из определенной строки, но всегда сталкиваюсь с ошибкой Warning: Invalid argument supplied for foreach().Предупреждение: неверный аргумент для foreach() PHP DOM

МОЙ КОД:

$dom = new domDocument; 
@$dom->loadHTML($notes); #$notes - value of textarea 
$dom->preserveWhiteSpace = false; 
$rows = $dom->getElementsByTagName('tr'); 
$moths = $rows->item(0)->nodeValue; #first row 
$mothlast = $rows->item($rows->length - 1)->nodeValue; #lastrow 

foreach ($moths as $moth) 
{ 
    $cols_mother = $moth->getElementsByTagName('td'); trying to get the columns of the first row of table 
    $rli_mother = strip_tags($cols_mother->item(0)->nodeValue); 

    echo $rli_mother; #first row 
} 

Любая помощь будет с удовольствием оценили. Спасибо!!!

+0

Удостоверьтесь, что '$ moths' на самом деле имеет значение и представляет собой массив, прежде чем пытаться его пропустить. –

+0

да, он имеет значение. это фактически первая строка моей таблицы. – user3310979

+2

Вы уверены? PHP, похоже, не так думает. –

ответ

0

Вы должны использовать

foreach($rows as $row){ 
    $td = .... 

$ моли не массив <tr> с, но $ строк

Если Вы желаете первую строку только затем просто использовать

$first = $rows->item(0); 

Это вернет весь узел и позволит вам его использовать, когда nodeValue просто возвращает строку, содержащую значение

+0

, то как мне получить столбцы только первой строки? – user3310979

+0

Мне нужен только первый столбец первой строки .. как мне это получить? – user3310979

+0

Возьмите то, что я вам дал, и попробуйте что-нибудь. И прочитайте это http://www.php.net/manual/en/class.domdocument.php – ElefantPhace

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