我喜欢这个小问题的帮助。
我需要PHP来收集HTML。可以说,这是完整HTML代码的一部分:
<div class="inner">
<p>Hi there. I am text! I'm playing hide and seek with PHP.</p>
</div>
我的目标是收集<p>
和</p>
之间的所有内容。这是我到目前为止的PHP:
$file = file_get_contents($link); //Import le HTML
preg_match('<div class="inner">
<p>(.*?)</p>
</div>si', $file, $k); //Play find & seek
$k_out = $k[1];
$name = strtok($k , '#'); //Remove everything behind the hashtags
echo $name;
但是 - 遗憾的是 - PHP错误了我:
*警告:preg_match():未知修饰符'&lt;'在/home/fourwonders/alexstuff/vinedownloader/public_html/v/index.php第131行*
你能救我吗?至少,感谢阅读!答案 0 :(得分:2)
在这种情况下,这是因为你没有指定delimiters(你总是需要分隔符,如果它在你的表达式中,你需要总是转义分隔符:
preg_match('#<div class="inner">
<p>(.*?)</p>
</div>#si', $file, $k);
答案 1 :(得分:2)
不要使用正则表达式来解析HTML。改为使用DOM Parser:
$doc = new DOMDocument();
$doc->loadHTML($html);
$tags = $doc->getElementsByTagName('p');
foreach ($tags as $tag) {
echo $tag->nodeValue;
}
输出:
Hi there. I am text! I'm playing hide and seek with PHP.