使用PHP在<title>和</title>之间提取字符串

时间:2011-05-10 18:52:16

标签: php

  

可能重复:
  (PHP5) Extracting a title tag and RSS feed address from HTML using PHP DOM or Regex
  Grabbing title of a website using DOM

我正在尝试在我的服务器上运行一百个不同的html文件,并提取标题以便在另一个php文件中使用。

供参考:

    <title>Generic Test Page</title>

我需要的是一个函数,它将返回字符串“Generic Test Page”并将其粘贴到全局变量中。

我现在正在做的只是将文件读入名为$ lines的数组中。 Foreach $行为$ line,我正在测试字符串&lt;标题&GT; ...但是我如何仅提取&gt;之间的内容。和&lt; /标题?

我的麻烦在于,有时原始开发者决定详细说明标题:&lt;标题名称=标题类=标题1&gt;,或者他将它放在三行而不是一行。世界上有什么?所以我不能只删除前七个字符和后八个字符。哪个会这么好......

谢谢!

3 个答案:

答案 0 :(得分:4)

您需要使用PHP Simple Dom Parser

之类的内容
function get_page_title($html_file) {
  $html = file_get_html($html_file);
  $title = $html->find('title', 0)->plaintext;
  return $title;
}

答案 1 :(得分:2)

$ line =每一行。

 $pattern ='/<title[^>]*>(.*?)<\/title>/is';
 if( preg_match($pattern,$line,$match) )
   return trim($match[1]); # your title !

或者只使用整个html上的模式并返回匹配。

或使用scurker建议的东西。

答案 2 :(得分:0)

您应该使用正则表达式来提取内部部分。更多信息here