我很努力的瞭解如何在PHP中使用DOMElement對象。我發現這個代碼,但我真的不知道這是適用於我:使用PHP獲取DOM元素
$dom = new DOMDocument();
$dom->loadHTML("index.php");
$div = $dom->getElementsByTagName('div');
foreach ($div->attributes as $attr) {
$name = $attr->nodeName;
$value = $attr->nodeValue;
echo "Attribute '$name' :: '$value'<br />";
}
基本上我需要的是尋找一個element
的DOM與特定id
,在此之後我需要提取非 - 標準的attribute
(也就是我用JS編寫和使用的),所以我可以看到它的價值。原因是我需要從$_GET
中獲得一張,並且從重定向中獲取基於HTML的一張。如果有人可以解釋我如何使用DOMDocument來達到這個目的,那會很有幫助。我真的很難理解正在發生的事情以及如何正確實施它,因爲我顯然做得不對。
EDIT(我在哪裏基於評論):
這是我的代碼行4-26參考:
<div id="column_profile">
<?php
require_once($_SERVER["DOCUMENT_ROOT"] . "/peripheral/profile.php");
$searchResults = isset($_GET["s"]) ? performSearch($_GET["s"]) : "";
$dom = new DOMDocument();
$dom->load("index.php");
$divs = $dom->getElementsByTagName('div');
foreach ($divs as $div) {
foreach ($div->attributes as $attr) {
$name = $attr->nodeName;
$value = $attr->nodeValue;
echo "Attribute '$name' :: '$value'<br />";
}
}
$div = $dom->getElementById('currentLocation');
$attr = $div->getAttribute('srckey');
echo "<h1>{$attr}</a>";
?>
</div>
<div id="column_main">
這是我收到的錯誤信息:
Warning: DOMDocument::load() [domdocument.load]: Extra content at the end of the document in ../public_html/index.php, line: 26 in ../public_html/index.php on line 10
Fatal error: Call to a member function getAttribute() on a non-object in ../public_html/index.php on line 21
'index.hp'不會被執行。 'loadHTML'只是讀取文件的內容,它不會運行它。您可能需要執行如下操作:'$ dom-> loadHTML(file_get_contents('http://localhost/index.php'))''。 –