在php中,使用正则表达式从字符串中选择html标记的一部分
我想在php中选择div标记中的字符串。我计划用正则表达式来实现它。但是有更好的办法吗 像这样:在php中,使用正则表达式从字符串中选择html标记的一部分,php,regex,dom,search,Php,Regex,Dom,Search,我想在php中选择div标记中的字符串。我计划用正则表达式来实现它。但是有更好的办法吗 像这样:你好,你好吗?。请代我向艾伦问好。 我想检索div标签中的所有文本,如: "<div>how are you?</div>" "<div>send my regards</div>" “你好吗?” “代我问候” 我可以知道怎么做吗 我计划用正则表达式来实现它 不,不要那样做。具体原因 但是有更好的办法吗 是的,为此使用DOM解析器。。 $html='
你好,你好吗?。请代我向艾伦问好。
我想检索div标签中的所有文本,如:
"<div>how are you?</div>"
"<div>send my regards</div>"
“你好吗?”
“代我问候”
我可以知道怎么做吗
我计划用正则表达式来实现它
不,不要那样做。具体原因
但是有更好的办法吗
是的,为此使用DOM解析器。。
$html='你好,你好吗?。请代我向艾伦问好。”;
$dom=新的DOMDocument;
$dom->loadHTML($html);
$divText='';
foreach($dom->getElementsByTagName('div')作为$tag){
$divText.=$dom->saveHTML($tag);
}
回显文本;
Better将div另存为HTML(保持转义)$divText.=$tag->ownerDocument->saveHtml($tag)的可能重复项;是的,但是DomDocument几乎和regex一样糟糕。那么你有什么建议呢?我在运行上面的代码时遇到了这个错误。警告:DOMDocument::saveHTML()需要0个参数,1个参数在/home/…中给出。DOMDocument::saveHTML()的$node参数是在PHP5.3.6中添加的。看起来你的PHP太旧了。DOMDocument::saveXml()也应该可以工作。
$html='Hello there <div>how are you?</div>. Please <div>send my regards</div> to Allan.';
$dom = new DOMDocument;
$dom->loadHTML($html);
$divText='';
foreach ($dom->getElementsByTagName('div') as $tag) {
$divText.=$dom->saveHTML($tag);
}
echo $divText;