首頁 >後端開發 >PHP問題 >php怎麼只取得文章文字內容

php怎麼只取得文章文字內容

藏色散人
藏色散人原創
2022-11-30 09:10:536048瀏覽

php只取得文章文字內容的方法:1、建立PHP範例檔案;2、定義「function curl_request ( $url , $post = '' , $cookie = '' ,  $returnCookie = 0 ) {...}」方法實作只抓取網頁文字內容,並過濾其標籤即可。

php怎麼只取得文章文字內容

本教學操作環境:Windows7系統、PHP8.1版、Dell G3電腦。

php怎麼只取得文章文字內容?

php只抓取網頁body文字內容,並過濾網頁標籤

php只抓取網頁文字內容,並過濾其標籤,說乾就乾,開始!

程式碼如下:

<?php
 function curl_request ( $url , $post = &#39;&#39; , $cookie = &#39;&#39; ,  $returnCookie = 0 ) {
     $ua = $ua==&#39;&#39;?$_SERVER [&#39;HTTP_USER_AGENT&#39;]:&#39;Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E; LBBROWSER)&#39; ;
            $curl  =  curl_init ( ) ;
            curl_setopt ( $curl , CURLOPT_URL ,  $url ) ;
            curl_setopt ( $curl , CURLOPT_USERAGENT , $ua ) ;
            curl_setopt ( $curl , CURLOPT_FOLLOWLOCATION ,  1 ) ;
            curl_setopt ( $curl , CURLOPT_AUTOREFERER ,  1 ) ;
            curl_setopt ( $curl , CURLOPT_REFERER ,  "https://www.baidu.com" ) ;
            if ( $post )  {
                 curl_setopt ( $curl , CURLOPT_POST ,  1 ) ;
                 curl_setopt ( $curl , CURLOPT_POSTFIELDS ,  http_build_query ( $post ) ) ;
            }
            if ( $cookie )  {
                 curl_setopt ( $curl , CURLOPT_COOKIE ,  $cookie ) ;
            }
            curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
            curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
            curl_setopt ( $curl , CURLOPT_HEADER ,  $returnCookie ) ;
            curl_setopt ( $curl , CURLOPT_TIMEOUT ,  10 ) ;
            curl_setopt ( $curl , CURLOPT_RETURNTRANSFER ,  1 ) ;
            $data  =  curl_exec ( $curl ) ;
            if  ( curl_errno ( $curl ) )  {
                 return  curl_error ( $curl ) ;
            }
            curl_close ( $curl ) ;
            if ( $returnCookie ) {
                 list ( $header ,  $body )  =  explode ( "\r\n\r\n" ,  $data ,  2 ) ;
                 preg_match_all ( "/Set\-Cookie:([^;]*);/" ,  $header ,  $matches ) ;
                 $info [ &#39;cookie&#39; ]   =  substr ( $matches [ 1 ] [ 0 ] ,  1 ) ;
                 $info [ &#39;content&#39; ]  =  $body ;
                 return  $info ;
            } else {
                 //return  $data ;
                 $data=mb_convert_encoding($data, &#39;UTF-8&#39;, &#39;UTF-8,GBK,GB2312,BIG5&#39;);
                preg_match("/<body.*?>(.*?)<\/body>/is",$data,$match);
                $str= trim($match[1]);
      $html = strip_tags($str);
    $html_len = mb_strlen($html,&#39;UTF-8&#39;);
    $html = mb_substr($html, 0, strlen($html), &#39;UTF-8&#39;);
    $search = array(" "," ","\n","\r","\t");
    $replace = array("","","","","");
    echo str_replace($search, $replace, $html);
            }
}
curl_request ( $url, $post = &#39;&#39; , $cookie = &#39;&#39; ,  $returnCookie = 0 );
?>

推薦學習:《PHP影片教學

以上是php怎麼只取得文章文字內容的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn