首页 > 编程技术 > php

php 模拟搜索引擎访问网页

发布时间:2016-11-25 15:13

在很多站防采集时就是判断用户的

php ,模拟,搜索引擎,访问网页时是否带有一些相关参数下面我们就来模仿搜索引擎访问网站吧。

<?php

function GetPage($url)
{
$buf=parse_url($url);
if($buf['scheme']=="http")//如果是URL
 {
 $host=$buf['host'];
 $page=$buf['path'];
 if(trim($buf['query'])!=="") $page.="?".trim($buf['query']);

 $myHeader="GET $url HTTP/1.1rn";
 $myHeader.="Host: $hostrn";
 $myHeader.="Connection: closern";
 $myHeader.="Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5rn";
 $myHeader.="Accept-Language: zh-cn,zh;q=0.5rn";
 $myHeader.="Accept-Charset: gb2312,utf-8;q=0.7,*;q=0.7rn";
 $myHeader.="User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.7.6) Gecko/20050226 Firefox/1.0.1 Web-Sniffer/1.0.20rn";
 $myHeader.="Referer: http://$host/rnrn";

 $server=$host;
 $port=80;

 $res="";
 if(false!==($fp = @fsockopen ($server, $port, $errno, $errstr, 30)))
  {
  @fputs ($fp, $myHeader);
  while (!@feof($fp)) $res.= @fgets ($fp, 1024);
  @fclose ($fp);
  }
 else return false;

 if(strlen($res)==0) return false;
 
 return $res;
 }
else//如果是本地文件
 {
 $fileName=$url;
 if(false!==@file_exists($fileName))
  {
  if(false!==($buf=@implode("",file($fileName)))&&@strlen($buf)>0)
   {
      
    return $buf;
   }
  else return false;
  }
 else return false;
 }
}


function  GetContent($str,$x,$y){ 
 $tem=strstr($str,$x);
 return substr($tem,0, strpos($tem,$y));
}


?>

百度收录查询代码

function baidu(){
 global $day,$message,$num,$page,$content;
 $url="http://www.baidu.com/s?q1=&q2=&q3=&q4=&rn=10&lm=$day&ct=0&tn=downreg&ft=&q5=&q6=$message";
 
 $contents=@file_get_contents($url);
 preg_match_all("/百度一下,找到相关网页(.*?)篇/is",$contents,$num);
 preg_match_all("/<table border="0" cellpadding="0" cellspacing="0">(.*?)</table>/is",$contents,$content);
 preg_match_all("/<div class="p">(.*?)</div>/is",$contents,$page);
}

下面我们来看看有关于php php addslashes 与stripslashes 使用教程吧,好了费话不说多了来看看喜欢不哦。

$magic_quotes_gpc = get_magic_quotes_gpc();


$register_globals = @ini_get('register_globals');


if(!$register_globals || !$magic_quotes_gpc) {


        extract($mc->daddslashes($_GET ), EXTR_OVERWRITE);


        extract($mc->daddslashes($_POST), EXTR_OVERWRITE);


        if(!$magic_quotes_gpc) {


                $_SERVER = $mc->daddslashes($_SERVER);


                $_COOKIE = $mc->daddslashes($_COOKIE);
        }
}

php 数字转换成中文数字教程

class ChineseNumber
{
var $basical=array(0=>"零","一","二","三","四","五","六","七","八","九");
//var $basical=array(0=>"零","壹","贰","叁","肆","伍","陆","柒","捌","玖");
var $advanced=array(1=>"十","百","千");
//var $advanced=array(1=>"拾","佰","仟");
var $top=array(1=>"万","亿");

var $level; // 以4位为一级

// 先实现万一下的数的转换
function ParseNumber($number)
{
if ($number>999999999999) // 只能处理到千亿。
return "数字太大,无法处理。抱歉!";
if ($number==0)
return "零";

for($this->level=0;$number>0.0001;$this->level++,$number=floor($number / 10000))
{
// 对于中文来说,应该是4位为一组。
// 四个变量分别对应 个、十、百、千 位。
$n1=substr($number,-1,1);
if($number>9)
$n2=substr($number,-2,1);
else
$n2=0;
if($number>99)
$n3=substr($number,-3,1);
else
$n3=0;
if($number>999)
$n4=substr($number,-4,1);
else
$n4=0;

if($n4)
$parsed[$this->level].=$this->basical[$n4].$this->advanced[3];
else
if(($number/10000)>=1) // 千位为0,数值大于9999的情况
$parsed[$this->level].="零";
if($n3)
$parsed[$this->level].=$this->basical[$n3].$this->advanced[2];
else
if(!ereg("零$",$parsed[$this->level]) && ($number / 1000)>=1) // 不出现连续两个“零”的情况
$parsed[$this->level].="零";
if($n2)
$parsed[$this->level].=$this->basical[$n2].$this->advanced[1];
else
if(!ereg("零$",$parsed[$this->level]) && ($number / 100)>=1) // 不出现连续两个“零”的情况
$parsed[$this->level].="零";
if($n1)
$parsed[$this->level].=$this->basical[$n1];
}
for($this->level-=1;$this->level>=0;$this->level--)
{
$result.=$parsed[$this->level].$this->top[$this->level];
}

if(ereg("零$",$result))
$result=substr($result,0,strlen($result)-2);

return $result;

}
};

$c=new ChineseNumber();
echo $c->ParseNumber(123456789012);

下面讲一下关于php正则表达式吧,下面来看看相关的函数php正则ereg ereg_replace eregi eregi_replace split等常用函数哦。

ereg()
ereg_replace()
eregi()
eregi_replace()
split()

(1)ereg,eregi
这是正规表达式匹配函数,前者是大小写有关匹配,后者则是无关的.
用法:
ereg(正规表达式,字符串,[匹配部分数组名]);
PHP3.0中的正规表达式大体类似于grep中用的.
(2)ereg_replace,eregi_replace
这些是替换函数.
用法:
ereg_replace(正规表达式,替换串,原字符串);
字符串处理函数中有一个strtr,是"翻译"函数,类似于Perl中的tr/.../.../,
用法:
strtr(字符串,"从","到");
例如:
strtr("aaabb","ab","cd")返回"cccdd".
(3)split
与explode函数有些类似,但这次可以在匹配某正规表达式的地方分割字符串.
用法:
split(正规表达式,字符串,[取出前多少项]);
 

标签:[!--infotagslink--]

您可能感兴趣的文章: