所以我想知道是否有办法使用PHP获取特定HTML标记的信息。
假设我们有这段代码:
<ul>
<li>First List</li>
<li>Second List</li>
<li>Third List</li>
</ul>
我如何搜索HTML并将第三个列表项的值拉入变量?或者有没有办法将整个无序列表拉入数组?
答案 0 :(得分:3)
尚未经过测试或编译,但一种方法是创建一个利用PHP: DOMDocument及其方法getElementsByTagName
的函数,该函数返回一个
PHP: DOMNodeList您可以访问特定索引处的节点。
function grabAttributes($file, $tag, $index) {
$dom = new DOMDocument();
if (!@$dom->load($file)) {
echo $file . " doesn't exist!\n";
return;
}
$list = $dom->getElementsByTagName($tag); // returns DOMNodeList of given tag
$newElement = $list->item($index)->nodeValue; // initialize variable
return $newElement;
}
如果您致电grabAttributes("myfile.html", "li", 2)
,则该变量将设为"Third List"
或者您可以创建一个函数将给定标记的所有属性放入数组中。
function putAttributes($file, $tag) {
$dom = new DOMDocument();
if (!@$dom->load($file)) {
echo $file . " doesn't exist!\n";
return;
}
$list = $dom->getElementsByTagName($tag); // returns DOMNodeList of given tag
$myArray = array(); // array to contain values.
foreach ($list as $tag) { // loop through node list and add to an array.
$myArray[] = $tag->nodeValue;
}
return $myArray;
}
如果您致电putAttributes("myfile.html", "li")
,则会返回array("First List", "Second List", "Third List")