php获取网页标题和内容函数

有时候我们需要获取网页的标题与内容,就是个采集函数,这里简单分享下,方便需要的朋友
 代码如下:
function getPageContent($url) {   
 
        //$url='http://www.ttphp.com;   
 
        $pageinfo = array();   
        $pageinfo[content_type] = '';   
        $pageinfo[charset] = '';   
        $pageinfo[title] = '';   
        $pageinfo[description] = '';   
        $pageinfo[keywords] = '';   
        $pageinfo[body] = '';   
        $pageinfo['httpcode'] = 200;   
        $pageinfo['all'] = '';    
 
        $ch = curl_init();   
        curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");   
        curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);   
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);   
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0);   
        curl_setopt($ch, CURLOPT_TIMEOUT, 8);   
        curl_setopt($ch, CURLOPT_FILETIME, 1);   
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);   
        //curl_setopt($ch, CURLOPT_HEADER, 1);         
        curl_setopt($ch, CURLOPT_URL,$url);   
 
        $curl_start = microtime(true);   
        $store = curl_exec ($ch);   
 
        $curl_time = microtime(true) - $curl_start;   
        if( curl_error($ch) ) {   
            $pageinfo['httpcode'] = 505;  //gate way error   
            echo 'Curl error: ' . curl_error($ch) ."/n";   
            return $pageinfo;   
        }   
 
        //print_r(curl_getinfo($ch));   
        $pageinfo['httpcode'] = curl_getinfo($ch,CURLINFO_HTTP_CODE);   
        //echo curl_getinfo($ch,CURLINFO_CONTENT_TYPE)."/n";   
        $pageinfo[content_type] = curl_getinfo($ch,CURLINFO_CONTENT_TYPE);   
        if(intval($pageinfo['httpcode']) <> 200 or !preg_match('@text/html@',curl_getinfo($ch,CURLINFO_CONTENT_TYPE) )   ) {   
                //print_r(curl_getinfo($ch) );   
                //exit;   
                return $pageinfo;   
        }   
        preg_match('/charset=([^/s/n/r]+)/i',curl_getinfo($ch,CURLINFO_CONTENT_TYPE),$matches); //从header 里取charset   
        if( trim($matches[1]) ) {   
            $pageinfo[charset] = trim($matches[1]);   
        }   
        //echo $pageinfo[charset];   
        //exit;   
        curl_close ($ch);   
        //echo $store;   
 
  
        //remove javascript   
        $store = preg_replace("/<mce:script.*><!--
(.*)<//script>/smUi",'',$store);   
        //remove link    
        $store = preg_replace("/<link/s+[^>]+>/smUi",'',$store);   
        //remove <!--  -->   
        $store = preg_replace("/<!--.*-->/smUi",'',$store);   
        //remove <style  </<style>   
        $store = preg_replace("/<style.*>(.*)<//style>/smUi",'',$store);   
        //remove 中文空格   
        $store = preg_replace("/ /",'',$store);   
        //remove 标点符号   
        //$store = preg_replace("/[/~`!@#$%^&*()_/-+={}|/[/]//;':"/</>/?/,/.//]/",'',$store);   
 
           
        //preg_match("/<head.*>(.*)<//head>/smUi",$store, $matches);   
        //$head = $matches[1];   
        //echo $head. "/n";   
 
        //charset   
        if($pageinfo[charset] == '' ) {  
            preg_match('@<meta.+charset=([/w/-]+)[^>]*>@i',$store,$matches);  
            $pageinfo[charset] = trim($matches[1]);  
        }  
        //desctiption  
        preg_match('@<meta/s+name=/"*description/"*/s+content/s*=/s*([^/>]+)/*>@i',$store,$matches);  
        //print_r($matches);  
        $desc = trim($matches[1]);  
        $pageinfo[description] = str_replace("/"", '',$desc);  
 
 
        preg_match('@<meta/s+name=/"*keywords/"*/s+content/s*=/s*([^/>]+)/*>@i',$store,$matches);  
        //print_r($matches);  
        $keywords = trim($matches[1]);  
        $pageinfo[keywords] = str_replace("/"", '',$keywords);  
 
          
        preg_match("/<title>(.*)<//title>/smUi",$store, $matches);  
        $pageinfo[title] = trim($matches[1]);  
 
        preg_match("/<body.*>(.*)<//body>/smUi",$store, $matches);  
        $pageinfo[body] = addslashes( replaceHtmlAndJs($matches[1]) ) ;  
        $pageinfo['all'] = addslashes( replaceHtmlAndJs($store) ) ;  
 
        //echo "charset = " . $pageinfo[charset] . "/n";  
 
        //print_r($pageinfo);  
        //exit;  
 
          
        return $pageinfo;  
 
}  
 
/**  
 * 去掉所有的HTML标记和JavaScript标记  
 */  
function replaceHtmlAndJs($document)   
{   
         $document = trim($document);   
         if (strlen($document) <= 0)   
         {   
          return $document;   
         }   
         $search = array (         
                                            "'<script[^>]*?>.*?
// --></mce:script>'si",  // 去掉 javascript   
                          "'<[///!]*?[^<>]*?>'si",          // 去掉 HTML 标记   
                          "'[/r/n/s+]'",                // 去掉空白字符   
                          "'&(/w+);'i"              // 替换 HTML 实体   
                         );                    // 作为 PHP 代码运行   
 
         $replace = array ( "", "", "", ""  );   
 
         return @preg_replace ($search, $replace, $document);   
 
}  
 
 
 
使用例子
 
代码如下:
$a = getPageContent(www.ttphp.com);   
print_r($a); 
 

时间: 2024-12-06 06:19:25

php获取网页标题和内容函数的相关文章

php获取网页标题和内容函数(不包含html标签)_php技巧

复制代码 代码如下: function getPageContent($url) {           //$url='http://www.ttphp.com;           $pageinfo = array();           $pageinfo[content_type] = '';           $pageinfo[charset] = '';           $pageinfo[title] = '';           $pageinfo[descript

PHP获取网页标题的3种实现方法代码实例

 这篇文章主要介绍了PHP获取网页标题的3种实现方法,分别使用CURL.file()函数.file_get_contents实现,需要的朋友可以参考下 一.推荐方法 CURL获取   <?php $c = curl_init(); $url = 'www.jb51.net'; curl_setopt($c, CURLOPT_URL, $url); curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); $data = curl_exec($c); curl_clo

javascript 获取网页标题代码实例

 这篇文章主要介绍了javascript 获取网页标题代码实例,有需要的朋友可以参考一下 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"&

javascript 获取网页标题代码实例_javascript技巧

复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="

javascript_获取网页标题代码

javascript_获取网页标题代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.jzread.com/1999/xhtml"> <head> <meta h

网页标题和内容的SEO优化技巧

网页的优化是一项细致的工作,需要一页一页地认真展开,这也是让许多SEO人员感到疲倦和不耐烦的事情.尤其是要优化几百.上千页的时候,每一页的优化内容都是不得马虎的,它直接关系到搜索排名是否能如意出现.本文就此问题做了介绍,希望能对广大SEO人员起到帮助.网页教学网站长认为如果你做好网页内容和网站标题,那么SEO就不存在了!也就是SEO的最高境界达到了! 至关重要的网页内容 赋予网页包括关键词的文件名,也能帮助搜索引擎判断一个网页的主题是什么.例如,对于销售主机的网站,可以将一些网页适当的命名为 h

PHP CURL或file_get_contents获取网页标题的代码及两者效率的稳定性问题_php实例

PHP CURL与file_get_contents函数都可以获取远程服务器上的文件保存到本地,但在性能上面两者完全不在同一个级别,下面我先来介绍PHP CURL或file_get_contents函数应用例子,然后再简单的给各位介绍一下它们的一些小区别吧. 推荐方法 CURL获取 <?php $c = curl_init(); $url = 'www.jb51.net'; curl_setopt($c, CURLOPT_URL, $url); curl_setopt($c, CURLOPT_R

PHP CURL或file_get_contents获取网页标题的代码

推荐方法 CURL获取  代码如下 复制代码 <?php $c = curl_init(); $url = 'www.111cn.net'; curl_setopt($c, CURLOPT_URL, $url); curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); $data = curl_exec($c); curl_close($c); $pos = strpos($data,'utf-8'); if($pos===false){$data = iconv

打开网页,网页标题乱码,求大牛帮我解决

问题描述 打开网页,网页标题乱码,求大牛帮我解决 解决方案 jsp页面meta 的编码格式与tomcat/服务器的编码格式检查一下是否一致 解决方案二: 编码不一致导致的,jsp页面meta申明charset为utf-8文件也要存储为utf-8编码,gb2312为ansi 解决方案三: 你查看下你所有的页面和内容的编码是否一致 解决方案四: VC获取网页标题,解决乱码问题ASP网页乱码解决网页打开php文件乱码的问题 解决方案五: 谢谢大家,问题顺利解决去!!!