This is 赵峰 | 赵峰之城 | 赵峰的博客 !

使用socket代替fopen直接读取的PHP函数

网络抓取,可以伪装来源和客户端,从而躲过一些站点的检查。


function get($url

$url = eregi_replace('^http://', '', $url); 
$temp = explode('/', $url); 
$host = array_shift($temp); 
$path = '/'.implode('/', $temp); 
$temp = explode(':', $host); 
$host = $temp[0]; 
$port = isset($temp[1]) ? $temp[1: 80

$fp = @fsockopen($host, $port, &$errno, &$errstr, 30); 
if ($fp

@
fputs($fp, "GET $path HTTP/1.1"); 
@
fputs($fp, "Host: $host"); 
@
fputs($fp, "Accept: */*"); 
@
fputs($fp, "Referer: http://$host/"); 
@
fputs($fp, "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"); 
@
fputs($fp, "Connection: Close"); 


$Content = ''
while ($str = @fread($fp, 4096)) 
$Content .= $str
@
fclose($fp); 

return $Content

Tags: 学习

« 上一篇 | 下一篇 »

只显示10条记录相关文章