我正在阅读this文章。这个功能包括:
<?php
function getFirstPara($string){
$string = substr($string,0, strpos($string, "</p>")+4);
return $string;
}
?>
...似乎首先在字符串中返回<p>
。但是,我怎样才能在字符串中获得第一个HTML元素(p
,a
,div
,...)(CSS中的:first-child
种类。)
答案 0 :(得分:3)
您可以使用http://php.net/strstr作为文章
首先搜索"<p>
“这将为您提供第一次出现到结尾的完整字符串
$first = strstr($html, '<p>');
然后在该结果中搜索“</p>
”,这将为您提供您不想保留的所有HTML
$second = strstr($first, '</p>');
然后删除不需要的html
$final = str_replace($second, "", $first);
通过在之前的结果中查找“<
”和“</$
”,可以使用相同的方法来获得第一个孩子。你需要检查&lt;之后的第一个字符/单词。找到正确的结束标签。
答案 1 :(得分:0)
通常建议避免使用字符串解析方法来查询html。
您会发现html附带了很多极端情况和语法分析怪癖,以至于您认为自己对代码的使用多么聪明,html都会出现,并用破坏测试的字符串来打击您。< / p>
我强烈建议您使用php dom解析库(免费,通常默认情况下包含在php安装中)。
例如DomDocument:
$dom = new \DOMDocument;
$dom->loadHTML('<p>One</p><p>Two</p><p>Three</p>');
$elements = $dom->getElementsByTagName('body')->item(0)->childNodes;
print '<pre>';
var_dump($elements->item(0));