作者:hytyj_989 | 来源:互联网 | 2023-01-29 19:33
我有一个HTML文件,其中包含许多JUST"li"标签,没有头部和身体标签以及其他任何东西.我想用PHP计算它们.我怎样才能做到这一点?
但是,我试过这个:
$dom = new DOMDocument();
DOMDocument::loadHTML($tmp_file);
$count = $dom->getElementsByTagName("li");
echo count($count);
但它返回1.
这是$ tmp_file(我不知道它们将被检索多少(可能是其中的一百个)但我只是将其中的5个添加到这里):
???????? ????? ?????? ??? ??????? ????? ??
????: ?? ??? ?????? ????? ??? ??? ?? ?????
???? ??? «???» ??????? ????? ????? ????? ????
5 ???? ????? ?? ??? ??????? NBA? 96/04/21
????? ???? ????? ???? ????? ????? ?? ?????????
?????? ?????? ? ????? ?? ??? ??? ?? ??? ????
???????: ????? ???????? ?? ????? ????
Francis Eyta..
8
你很亲密 我认为您正在寻找的是以下内容:
$dom = new \DOMDocument();
@$dom->loadHTML($html); // or @$dom->loadHTMLFile($filename); if providing filename rather than actual HTML content
$count = $dom->getElementsByTagName('li')->length;
echo $count;
根据您的值,$tmp_file
您可以使用loadHTML()
它包含实际内容,还是loadHTMLFile()
包含文件名.(请注意,不应静态调用这些方法.)
该方法getElementsByTagName()
返回一个DOMNodeList
对象,该对象具有length
包含已找到节点数的属性.
你可以在这里试试代码.
这种DOM解析方法比字符串或正则表达式搜索更可取,因为它旨在考虑HTML可以被接受的多种可变方式(即不一致的间距,属性顺序).
1> Francis Eyta..:
你很亲密 我认为您正在寻找的是以下内容:
$dom = new \DOMDocument();
@$dom->loadHTML($html); // or @$dom->loadHTMLFile($filename); if providing filename rather than actual HTML content
$count = $dom->getElementsByTagName('li')->length;
echo $count;
根据您的值,$tmp_file
您可以使用loadHTML()
它包含实际内容,还是loadHTMLFile()
包含文件名.(请注意,不应静态调用这些方法.)
该方法getElementsByTagName()
返回一个DOMNodeList
对象,该对象具有length
包含已找到节点数的属性.
你可以在这里试试代码.
这种DOM解析方法比字符串或正则表达式搜索更可取,因为它旨在考虑HTML可以被接受的多种可变方式(即不一致的间距,属性顺序).
2> ankit suthar..:
你可以对该字符串做一个非常简单Substring Count
的
(或-li-),它会返回项目数.看这里:function.substr-count
$count = substr_count($html,'
'); //where $html holds your piece of HTML.
@ Er.Ellison`subtr_count($ html,'');当我在你的问题中尝试HTML时,`对我来说非常适合.当然,您需要将`$ html`更改为实际保存HTML数据的变量.试试看:https://3v4l.org/daX97
如果你打算走这条路,我建议检查` li>`或`