如何使用preg_match获取“id或更多的html标题”?

时间:2017-06-24 04:05:35

标签: php html preg-match

我正在使用

preg_match("/\<title\>(.*)\<\/title\>/i",$str,$title);

获取

<title>Exapmle</title>

如何使用preg_match获取此内容?

<title id="ANY_ID">Exapmle</title>

我用它来获取页面标题。也许,一个标题可以超过'id' 在回答时,请记住这一点。

<小时/> 好。这是获取页面标题的完整代码。希望它能帮助他人。

function get_title($url){
     $str = file_get_contents($url);
     $str = trim(preg_replace('/\s+/', ' ', $str)); 
     // supports line breaks inside <title>
     $match = preg_match("/\<title(.*)\>(.*)\<\/title\>/i",$str,$title); 
     // tries to catch if the title has an id or more

     // if first prag_match gets an error 
     // (that means the title tag has no id or more)
     // it tries to get title without id or more
     if ($match === false) 
      {
         preg_match("/\<title\>(.*)\<\/title\>/i",$str,$title);
      }

return $title[1];
}

1 个答案:

答案 0 :(得分:0)

您可以添加与任何字符匹配的(.*)。请注意,$title的最后一个元素是您的标题

preg_match("/\<title(.*)\>(.*)\<\/title\>/i",$str,$title);