欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

PHP中使用CURL获取页面title例子_PHP

程序员文章站 2022-06-04 13:08:23
...
通过PHP获取页面title内容的实战演示:

范例代码:

代码如下:


/*
功能: 取得 URL 页面上的

内容 <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 的 <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> 区段 <br> preg_match("/<head.><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">(.*)/smUi",$store, $htmlHeaders); <br> if(!count($htmlHeaders)){ <br> echo "无法解析数据中的 <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> 区段"; <br> exit; <br> } <br><br> // 取得 <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> 中 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>(.*)/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]); <br> } <br> echo $title; <br> }