PHP에서 DOM을 사용하여 HTML을 구문 분석하는 데 문제가 있습니다. href 값을 검색하고 싶지만 오류가 발생합니다. 2 차원 배열에서 행 값과 href 값을 함께 원합니다. 코드의 마지막 줄 또한 오류를줍니다. 어떤 아이디어? 원하는 출력은 -
1, "http : // .....", 사용자
2, "http : // .....", 서버 ... 등이 2D 배열에 있습니다.PHP에서 HTML 구문 분석
<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을 제어 할 수 있습니까? 왜 그것을 souce에서 고쳐서 더 나은 성능을 얻을 수 있습니까? –