我无法弄清楚如何从包含以下内容的 html 页面获取标题:
<title>Breaking <--- *EOL
- News</title>
*注意:在"中断"一词后有一个不可见的 EOL 或换行符。
我已经尝试了几乎所有可能处理 eol 的正则表达式,但似乎没有任何效果。它总是不返回任何内容。
preg_match('/<title.*?>(.*?)</title>/si', $str, $match);
preg_match('/(?s)<title.*?>(.*?)</title>/i', $str, $match)
$titles = $dom->getElementsByTagName('title');
$title = $titles->item(0)->nodeValue;
这个正则表达式在许多情况下都可以正确抓取标题,但无论我尝试什么,标签之间的 EOL 总是失败。
任何有意义的解决方案步骤将不胜感激。
尝试 CHecked 并且工作正常。
preg_match('/<title>(.*?)</title>/ism', $str, $match);
print_r($match[1]);
我编写了这个真正的快速代码
<?php
$title = '<title>Breaking
- News</title>';
preg_match('/<title[^>]*>(.*?)</title>/is', $title, $match);
echo $match[0]."n";
echo $match[1]."n";
希望对您有所帮助。