>백엔드 개발 >PHP 튜토리얼 >snoopy picture 스누피 기반 PHP는 웹사이트 인코딩 코드를 거의 완벽하게 얻습니다.

snoopy picture 스누피 기반 PHP는 웹사이트 인코딩 코드를 거의 완벽하게 얻습니다.

WBOY
WBOY원래의
2016-07-29 08:46:561102검색

먼저 인터넷에서 Snoopy.class.php를 다운로드하세요.
호출 방법:

코드 복사 코드는 다음과 같습니다.


< ?php
require 'lib/Snoopy.class.php';
require 'lib/WebCrawl.class.php';//다음 코드 포함
$go=new WebCrawl( 'http://www.baidu.com');
echo $go->getCharset()
?>


코드 복사 코드는 다음과 같습니다.


class WebCrawl
{
private $url;
비공개 $요청;
public $charset_arr=array(
'gb2312',
'utf-8',
'big5',
'gbk',
'ascii',
' cp936',
'ibm037',
'ibm437',
'ibm500',
'asmo-708',
'dos-720',
'ibm737',
'ibm775',
'ibm850',
'ibm852',
'ibm855',
'ibm857',
'ibm00858',
'ibm861',
'ibm860',
'dos-862',
'ibm863',
'ibm864',
'ibm865',
'cp866',
'ibm869',
'ibm870',
'windows-874',
'cp875',
'shift_jis',
'ks_c_5601-1987',
'ibm1026',
'ibm01047 ',
'ibm01047',
'ibm01040',
'ibm01041',
'ibm01042',
'ibm01043',
'ibm01044',
'ibm01045' ,
'ibm01046',
'ibm01047',
'ibm01048',
'ibm01049',
'utf-16',
'unicodefffe',
'windows -1250',
'windows-1251',
'windows-1252',
'windows-1253',
'windows-1254',
'windows-1255',
'windows-1256',
'windows-1257',
'windows-1258',
'johab',
'macintosh',
'x-mac-japanese' ,
'x-mac-chinesetrad',
'x-mac-한국어',
'x-mac-아랍어',
'x-mac-hebrew',
'x -mac-greek',
'x-mac-cyrillic',
'x-mac-chinesesimp',
'x-mac-romanian',
'x-mac-ukrainian',
'x-mac-thai',
'x-mac-ce',
'x-mac-icelandic',
'x-mac-turkish',
'x- mac-croatian',
'x-chinese-cns',
'x-cp20001',
'x-chinese-eten',
'x-cp20003',
'x -cp20004',
'x-cp20005',
'x-ia5',
'x-ia5-german',
'x-ia5-swedish',
'x- ia5-norwegian',
'us-ascii',
'x-cp20261',
'x-cp20269',
'ibm273',
'ibm277',
' ibm278',
'ibm280',
'ibm284',
'ibm285',
'ibm290',
'ibm420',
'ibm423',
'ibm424 ',
'x-ebcdic-koreanextended',
'ibm-thai',
'koi8-r',
'ibm871',
'ibm880',
'ibm905 ',
'ibm00924',
'x-cp20936',
'x-cp20949',
'cp1025',
'koi8-u',
'iso-8859 -1',
'iso-8859-2',
'iso-8859-3',
'iso-8859-4',
'iso-8859-5',
'iso-8859-6',
'iso-8859-7',
'iso-8859-8',
'iso-8859-9',
'iso-8859- 13',
'iso-8859-15',
'x-europa',
'iso-8859-8-i',
'iso-2022-jp',
'csiso2022jp',
'iso-2022-jp',
'iso-2022-kr',
'x-cp50227',
'euc-jp',
'euc- cn',
'euc-kr',
'hz-gb-2312',
'gb18030',
'x-iscii-de',
'x-iscii-be ',
'x-iscii-ta',
'x-iscii-te',
'x-iscii-as',
'x-iscii-or',
' x-iscii-ka',
'x-iscii-ma',
'x-iscii-gu',
'x-iscii-pa',
'utf-7',
'utf-32',
'utf-32be'
);
공용 함수 __construct($url)
{
$this->url=$url;
}
//打开网站
비공개 함수 open($url)
{
if($this->request!==null)
{
if( $this->request->status==200)
{
return true;
}
else
{
false를 반환합니다.
}
}
else
{
$this->request=new Snoopy();
$this->요청->fetch($url);
if($this->request->status==200)
{
$this->request->results=strtolower($this->request->results) ;
$charset=$this->getCharset();
if($charset!="utf-8")
{
if($charset=="windows-1252")
{
$this->request-> results=$this->uni_decode($this->요청->결과);
}
else
{
$this->request->results=mb_convert_encoding($this->request->results,"UTF-8",$charset);
}
}
true를 반환합니다.
}
else
{
false를 반환합니다.
}
}
}
//获取网站title,keywords,description
공개 함수 getWebinfo()
{
$info=array(
'title' =>'',
'keywords'=>'',
'desc'=>'',
'ip'=>''
);
if(!$this->open($this->url)){return $info;exit;}
// print_r($this->request->results);exit;
preg_match('/([^>]*)/si', $this->request->results, $titlematch );
if (isset($titlematch) && is_array($titlematch) && count($titlematch) > 0)
{
$info['title'] = Strip_tags($titlematch[1]);
}
preg_match_all('/<[s]*meta[s]*name="?' . '([^>"]*)"?[s]*' . 'c || $mt=="설명")
{
$ft=1;
}
}
if($ft==0)
{
preg_match_all('/ <[s]*meta[s]*c/request->results,$temp) ? strtolower($temp[1]):"";
if($temp[1]!="")
{
if(in_array($temp[1], $this->charset_arr))
{
if($ temp[1]=="gb2312")
{
$tmp_charset=$this->t($this->request->results,$temp[1]);
if($tmp_charset==$temp[1])
{
return $temp[1];
}
}
else
{
return $temp[1];
}
}
}
if(!empty($this->request->headers))
{
//헤더에서 인코딩 가져오기
$hstr=strtolower(implode("|||" , $this->request->headers))
preg_match("/charset=[^w]?([-w] )/is",$hstr,$lang) ? 1 ]):"";
if($lang[1]!="")
{
return $lang[1]
}
$encode_arr= 배열("UTF-8","GB2312","GBK","BIG5","ASCII","EUC-JP","Shift_JIS","CP936","ISO-8859-1","JIS", " eucjp-win","sjis-win");
$encoded=mb_Detect_encoding($this->request->results,$encode_arr)
if($encoded)
{
return strtolower($encoded);
else
{
return false
}
}
}
?>
위에서는 스누피 사진을 소개했는데, 스누피 기반 PHP는 스누피 사진 내용을 포함해 웹사이트 인코딩 코드를 얻는 데 거의 완벽합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되길 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.