程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php獲取網頁標題和內容函數

php獲取網頁標題和內容函數

編輯:關於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);   
    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved