php使用fsockopen方法代理读取远程网页
2007-08-10 15:26
681 查看
转帖:http://www.techmango.com/blog/article.asp?id=172
<?php
class http{
var $proxy_host="";
var $proxy_port="0";
var $http_fp="";
function http_fopen($host,$path,$port="80"){
if(empty($this->proxy_host)){
$conn_host=$host;
$conn_port=$port;
}
else{
$conn_host=$this->proxy_host;
$conn_port=$this->proxy_port;
}
//
$path=$this->slashUrl($path);;
//
$abs_url="http://$host:$port$path";
$query="GET $abs_url HTTP/1.0/r/n".
"HOST:$host:$port/r/n".
"User-agent:PHP/class http 0.1/r/n".
"/r/n";
$fp=fsockopen($conn_host,$conn_port);
if(!$fp){
return false;
}
fputs($fp,$query);
while(trim(fgets($fp,"1024")!="")){
$this->http_fp=$fp;
return $fp;
}
}
//得到查询内容
function http_fget(){
if($this->http_fp!=""){
$content=fread($this->http_fp,"
a177
9999999");
$content=$this->trimHeader($content);
return $content;
}
}
//对路径的处理,如果前面没有/,就加一个
function slashUrl($url){
if(!ereg("^/",$url)){
return "/".$url;
}
else{
return $url;
}
}
//对获得内容进行处理,去掉头部信息
function trimHeader($content){
$array=split("/n/r",$content,"2");
return trim($array["1"]);
}
}
$http=new http;
//代理服务器设置
$http->proxy_host="10.14.81.81";
$http->proxy_port="6666";
//www.baidu.com是主机地址,第二个参数是具体的目标
$fp=$http->http_fopen("www.baidu.com","/baidu?word=%C0%EE%B0%D7&cl=3");
if(!$fp){
echo"sorry,con't connect";
exit;
}
//得到返回的结果
echo $http->http_fget($fp);
?>
<?php
class http{
var $proxy_host="";
var $proxy_port="0";
var $http_fp="";
function http_fopen($host,$path,$port="80"){
if(empty($this->proxy_host)){
$conn_host=$host;
$conn_port=$port;
}
else{
$conn_host=$this->proxy_host;
$conn_port=$this->proxy_port;
}
//
$path=$this->slashUrl($path);;
//
$abs_url="http://$host:$port$path";
$query="GET $abs_url HTTP/1.0/r/n".
"HOST:$host:$port/r/n".
"User-agent:PHP/class http 0.1/r/n".
"/r/n";
$fp=fsockopen($conn_host,$conn_port);
if(!$fp){
return false;
}
fputs($fp,$query);
while(trim(fgets($fp,"1024")!="")){
$this->http_fp=$fp;
return $fp;
}
}
//得到查询内容
function http_fget(){
if($this->http_fp!=""){
$content=fread($this->http_fp,"
a177
9999999");
$content=$this->trimHeader($content);
return $content;
}
}
//对路径的处理,如果前面没有/,就加一个
function slashUrl($url){
if(!ereg("^/",$url)){
return "/".$url;
}
else{
return $url;
}
}
//对获得内容进行处理,去掉头部信息
function trimHeader($content){
$array=split("/n/r",$content,"2");
return trim($array["1"]);
}
}
$http=new http;
//代理服务器设置
$http->proxy_host="10.14.81.81";
$http->proxy_port="6666";
//www.baidu.com是主机地址,第二个参数是具体的目标
$fp=$http->http_fopen("www.baidu.com","/baidu?word=%C0%EE%B0%D7&cl=3");
if(!$fp){
echo"sorry,con't connect";
exit;
}
//得到返回的结果
echo $http->http_fget($fp);
?>
相关文章推荐
- php使用fsockopen方法代理读取远程网页
- php读取远程gzip压缩网页的方法
- php使用fsockopen请求方法,支持https/header设置/代理请求等定制
- php读取远程gzip压缩网页的方法
- 使用PHP读取远程文件的四种方法
- php使用fsockopen函数发送post,get请求获取网页内容的方法
- php使用fsockopen函数发送post,get请求获取网页内容的方法
- PHP读取文本文件并逐行输出该行使用最多的字符与对应次数的方法
- PHP中使用file_get_contents抓取网页中文乱码问题解决方法
- ASP.NET使用HttpWebRequest读取远程网页源代码
- php读取网络文件 curl, fsockopen ,file_get_contents 几个方法的效率对比
- php读取网络文件 curl, fsockopen ,file_get_contents 几个方法的效率对比
- php远程读取json的方法
- PHP使用curl_multi_select解决curl_multi网页假死问题的方法
- 分享PHP源码批量抓取远程网页图片并保存到本地的实现方法
- php下FCKeditor2.6.5网页编辑器的使用方法
- PHP 通过fsockopen函数获取远程网页源码
- ASP.NET使用HttpWebRequest读取远程网页源代码
- PHP使用代理访问外部网站的方法
- php使用ftp远程上传文件类(完美解决主从文件同步问题的方法)