PHP中使用CURL获取页面title例子
通过PHP获取页面title内容的实战演示:
范例代码:
代码如下:
<?php /* 功能: 取得 URL 页面上的 <title> 内容 参数:$_POST['url'] */ // 设置最长执行的秒数 ini_set ("expect.timeout", 30); set_time_limit(30); // 检查 URL if(!isset($_POST['url']) || $_POST['url'] == ''){ echo "URL 错误"; exit; } /* 取得 URL 页面数据 */ // 初始化 CURL $ch = curl_init(); // 设置 URL curl_setopt($ch, CURLOPT_URL, $_POST['url']); // 让 curl_exec() 获取的信息以数据流的形式返回,而不是直接输出。 curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); // 在发起连接前等待的时间,如果设置为0,则不等待 curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 0); // 设置 CURL 最长执行的秒数 curl_setopt ($ch, CURLOPT_TIMEOUT, 30); // 尝试取得文件内容 $store = curl_exec ($ch); // 检查文件是否正确取得 if (curl_errno($ch)){ echo "无法取得 URL 数据"; //echo curl_error($ch);/*显示错误信息*/ exit; } // 关闭 CURL curl_close($ch); // 解析 HTML 的 <head> 区段 preg_match("/<head.*>(.*)<\/head>/smUi",$store, $htmlHeaders); if(!count($htmlHeaders)){ echo "无法解析数据中的 <head> 区段"; exit; } // 取得 <head> 中 meta 设置的编码格式 if(preg_match("/<meta[^>]*http-equiv[^>]*charset=(.*)(\"|')/Ui",$htmlHeaders[1], $results)){ $charset = $results[1]; }else{ $charset = "None"; } // 取得 <title> 中的文字 if(preg_match("/<title>(.*)<\/title>/Ui",$htmlHeaders[1], $htmlTitles)){ if(!count($htmlTitles)){ echo "无法解析 <title> 的内容"; exit; } // 将 <title> 的文字编码格式转成 UTF-8 if($charset == "None"){ $title=$htmlTitles[1]; }else{ $title=iconv($charset, "UTF-8", $htmlTitles[1]); } echo $title; }
相关推荐
83911535 2020-11-13
曾是土木人 2020-10-31
yegen00 2020-10-21
soralaro 2020-10-11
katanaFlower 2020-09-18
wytzsjzly 2020-08-17
88407710 2020-08-17
ChinaJoeEE 2020-08-16
CyborgLin 2020-08-15
Blueberry 2020-08-15
PinkBean 2020-08-11
katanaFlower 2020-08-03
hunningtu 2020-07-30
阿债的方寸天地 2020-06-28
pingyan 2020-06-25
wytzsjzly 2020-06-25
阳光岛主 2020-06-25
阿债的方寸天地 2020-06-16