使用PHP正则表达式或DOM,如何获取网页的?标签之间有EOL或换行符<TITLE>?</TITLE>



我无法弄清楚如何从包含以下内容的 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";

希望对您有所帮助。

相关内容

最新更新