通过PHP获取页面title内容的实战演示:
范例代码:
<br /><?php <br />/* <br />功能: 取得 URL 页面上的 <title> 内容 <br /> <br />参数:$_POST['url'] <br />*/ <br /> <br />// 设置最长执行的秒数 <br />ini_set ("expect.timeout", 30); <br />set_time_limit(30); <br /> <br />// 检查 URL <br />if(!isset($_POST['url']) || $_POST['url'] == ''){ <br /> echo "URL 错误"; <br /> exit; <br />} <br /> <br /> <br />/* 取得 URL 页面数据 */ <br />// 初始化 CURL <br />$ch = curl_init(); <br /> <br />// 设置 URL <br />curl_setopt($ch, CURLOPT_URL, $_POST['url']); <br />// 让 curl_exec() 获取的信息以数据流的形式返回,而不是直接输出。 <br />curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); <br />// 在发起连接前等待的时间,如果设置为0,则不等待 <br />curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 0); <br />// 设置 CURL 最长执行的秒数 <br />curl_setopt ($ch, CURLOPT_TIMEOUT, 30); <br /> <br />// 尝试取得文件内容 <br />$store = curl_exec ($ch); <br /> <br /> <br />// 检查文件是否正确取得 <br />if (curl_errno($ch)){ <br /> echo "无法取得 URL 数据"; <br /> //echo curl_error($ch);/*显示错误信息*/ <br /> exit; <br />} <br /> <br />// 关闭 CURL <br />curl_close($ch); <br /> <br /> <br />// 解析 HTML 的 区段 <br />preg_match("/(.*)<\/head>/smUi",$store, $htmlHeaders); <br />if(!count($htmlHeaders)){ <br /> echo "无法解析数据中的 区段"; <br /> exit; <br />} <br /> <br />// 取得 中 meta 设置的编码格式 <br />if(preg_match("/<meta[^>]*http-equiv[^>]*charset=(.*)(\"|')/Ui",$htmlHeaders[1], $results)){ <br /> $charset = $results[1]; <br />}else{ <br /> $charset = "None"; <br />} <br /> <br />// 取得 <title> 中的文字 <br />if(preg_match("/<title>(.*)<\/title>/Ui",$htmlHeaders[1], $htmlTitles)){ <br /> if(!count($htmlTitles)){ <br /> echo "无法解析 <title> 的内容"; <br /> exit; <br /> } <br /> <br /> // 将 <title> 的文字编码格式转成 UTF-8 <br /> if($charset == "None"){ <br /> $title=$htmlTitles[1]; <br /> }else{ <br /> $title=iconv($charset, "UTF-8", $htmlTitles[1]<p style="color:transparent">2本文来源gao!daima.com搞$代!码网</p><span>搞代gaodaima码</span>); <br /> } <br /> echo $title; <br />} <br />