namespace xuyaoxiang; class snoopy { private $pattern_array=array( 'title'=>'/<title>(\s*.*)<\/title>/i', 'description'=>'/<meta +name="[d|d]escription" +content="(.*)" +\/>/', 'charset'=>'/charset=\"?([\w-]+)\"?/i', ); public $url; public $target_code="utf-8"; //目标编码 public $user_agent='mozilla/5.0 (windows nt 10.0; wow64) applewebkit/537.36 (khtml, like gecko) chrome/49.0.2623.110 safari/537.36'; //模拟浏览器头部数据 function __construct($url) { $this->url=$url; } public function set_pattern($key,$val) { if(isset($this->pattern_array[$key])){return false;} $this->pattern_array[$key]=$val; } //只能够添加规则,不能更改原有的规则 function get_pege_content($pattern_key) { if($pattern_key=='') { return false; } $curl=curl_init(); // 设置你需要抓取的url curl_setopt($curl, curlopt_url, $this->url); // 设置header curl_setopt($curl, curlopt_header, 0); // 设置curl 参数,要求结果保存到字符串中还是输出到屏幕上。 curl_setopt($curl, curlopt_returntransfer, 1); curl_setopt($curl, curlopt_useragent, $this->user_agent); // 运行curl,请求网页 $data = curl_exec($curl); if($data==false){return false;} preg_match($this->pattern_array['charset'],$data,$reg_charset); //获取网页编码 $page_charset=strtolower($reg_charset[1]); $charset==$this->target_code || $data=mb_convert_encoding($data,$this->target_code,$page_charset); //如果不符合你设置的编码,进行转码 preg_match($this->pattern_array[$pattern_key],$data,$content); // 关闭url请求 curl_close($curl); return trim($content[1]); }} $snoopy=new snoopy("http://www.qq.com"); $title=$snoopy->get_pege_content('title'); print_r($title);
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号