У меня проблема с разбором HTML с DOM в PHP. Я хочу получить значение href, но даю мне ошибку. Я хочу значение строки и значение href вместе в двухмерном массиве. Последняя строка в коде также дает ошибку. Есть идеи ? Выход, который я хочу, -
1, «http: // .....», Пользователь
2, «http: // .....», Server ... и т. Д. В 2D-массиве.Анализ HTML в PHP
<html>
<body>
<table>
<tbody>
<tr>
<td>1 </td>
<td><a href="http://www.abcd.net"></a></td>
<td>User</td>
</tr>
<tr>
<td>2 </td>
<td><a href="http://www.def.net"></a></td>
<td>Server</td>
</tr>
</tbody>
</table>
</body>
</html>
Вот PHP код
$resArr = array();
$dom = new domDocument;
@$dom -> loadHTML(file_get_contents($link));
$dom -> preserveWhiteSpace = false;
$linkt = $dom -> getElementsByTagName('table');
$linkt1 = $linkt -> item(2);
//tr
foreach ($linkt1 -> childNodes as $key => $tag){
//td
foreach ($tag -> childNodes as $key1 => $tag1){
foreach ($tag1 -> childNodes as $key2 => $tag2){
echo $tag2->hasattribute('href');
//Error Occur here ----Fatal error: Call to
//undefined method DOMText::hasattribute() in on line 38
}
}
}
$resArr[$i][0] = $tag -> childNodes -> item(0) -> nodeValue;
$resArr[$i][3] = $tag -> childNodes -> item(3) -> nodeValue;
$resArr[$i][1] = $tag1 -> childNodes -> item(1) ->
childNodes -> item(0) -> getAttribute('href'); //the same error as above
Если вы получаете сообщение об ошибке, * включают сообщение об ошибке в вашем вопросе *. – Amber
Ваш ожидаемый результат тоже будет полезен. Мы не можем читать ваши мысли. –
У вас есть контроль над HTML? Почему бы не исправить это на сусе и, следовательно, получить лучшую производительность? –