我试图在服务器上运行100个不同的html文件,并提取标题以供在另一个php文件中使用。
供参考:
<title>Generic Test Page</title>我需要的是一个函数,它将返回字符串“”,并将其放入一个全局变量中。
我现在所做的只是将文件读入一个名为$lines的数组中。Foreach $lines作为$line,我测试字符串< title> .但是如何只提取>和< /title之间的内容呢?
我的问题是,有时原始开发人员决定详细说明标题:< title name=title class=title1>,或者他将其放在三行而不是一行。世界上有什么?所以我不能只去掉前七个字符和最后八个字符。这太好了..。
谢谢你!!
发布于 2011-05-10 18:57:19
您需要使用类似于PHP简单Dom解析器的东西
function get_page_title($html_file) {
$html = file_get_html($html_file);
$title = $html->find('title', 0)->plaintext;
return $title;
}发布于 2011-05-10 19:33:04
$line =每一行。
$pattern ='/<title[^>]*>(.*?)<\/title>/is';
if( preg_match($pattern,$line,$match) )
return trim($match[1]); # your title !或者只需在整个html上使用模式并返回匹配。
或者用一些垃圾的建议。
发布于 2011-05-10 18:57:45
您应该使用正则表达式来提取内部部分。更多信息这里
https://stackoverflow.com/questions/5954911
复制相似问题