使用PHP正则表达式或DOM,如何获取网页';s<;标题></标题>;标签之间是否有下线或换行符?
我无法确定如何从包含以下内容的html页面获取标题:使用PHP正则表达式或DOM,如何获取网页';s<;标题></标题>;标签之间是否有下线或换行符?,php,html,regex,curl,dom,Php,Html,Regex,Curl,Dom,我无法确定如何从包含以下内容的html页面获取标题: <title>Breaking <--- *EOL - News</title> 中断getElementsByTagName('title'); $title=$titles->item(0)->nodeValue; 这个正则表达式在很多情况下都能正确地获取标题,但是不管我怎么做,标签之间的eol总是失败 任何有意义的解决方案都将不胜感激。请尝试检查并正常工作 preg_match('/\<title
<title>Breaking <--- *EOL
- News</title>
中断getElementsByTagName('title');
$title=$titles->item(0)->nodeValue;
这个正则表达式在很多情况下都能正确地获取标题,但是不管我怎么做,标签之间的eol总是失败
任何有意义的解决方案都将不胜感激。请尝试检查并正常工作
preg_match('/\<title\>(.*?)\<\/title\>/ism', $str, $match);
print_r($match[1]);
preg\u match('/\(.*?\/ism',$str,$match);
打印($match[1]);
我很快就编好了
<?php
$title = '<title>Breaking
- News</title>';
preg_match('/<title[^>]*>(.*?)<\/title>/is', $title, $match);
echo $match[0]."\n";
echo $match[1]."\n";
DOM方法有什么问题?在这里工作正常~您的第一个版本工作:@Adriano多行标志用于使^
和$
匹配行开始和结束。s
标志正是他所需要的,他已经有了。@Barmar我分叉了包含原始源代码的实际html:它不工作@dpark123是的,你的字符串有未替换的引号。这里修好了~我检查过了,工作正常。请检查@dpark123
<?php
$title = '<title>Breaking
- News</title>';
preg_match('/<title[^>]*>(.*?)<\/title>/is', $title, $match);
echo $match[0]."\n";
echo $match[1]."\n";