Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP正则表达式或DOM,如何获取网页';s<;标题></标题>;标签之间是否有下线或换行符?_Php_Html_Regex_Curl_Dom - Fatal编程技术网

使用PHP正则表达式或DOM,如何获取网页';s<;标题></标题>;标签之间是否有下线或换行符?

使用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

我无法确定如何从包含以下内容的html页面获取标题:

<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";