使用fsockopen();
例子 1. fsockopen() Example<?php
$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    $out = "GET / HTTP/1.1\r\n";
    $out .= "Host: www.example.com\r\n";
    $out .= "Connection: Close\r\n\r\n";    fputs($fp, $out);
    while (!feof($fp)) {
        echo fgets($fp, 128);
    }
    fclose($fp);
}
?>  
或使用XMLHTTP也可以

解决方案 »

  1.   

    楼上的,谢谢你!你这个Get方法比较好!但是我现在想寻求POST的方式并且在UNIX + PHP , 或LINX + PHP的环境下可以用的方法,XMLHTTP好像是在windows下的组件为了实现跨平台,必须不能够用组件。所以不知道有没有什么办法!谢谢你们,帮帮我吧!
      

  2.   

    curl也可以。前不久我编了个socket的类,随便贴给你看看有没有帮助吧。class Browser
    {
        var $target = "";
        var $host = "";
        var $accept = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, application/x-shockwave-flash, */*";
        var $referer = "";
        var $accept_language = "zh-cn";
        var $accept_encoding = "gzip, deflate";
        var $user_agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)";
        var $pragma = "no-cache";
        var $cache_control = "no-cache";
        var $connection = "Close";
        var $cookie = "";    function Browser( $host, $target )
        {
            $this->host = $host;
            $this->target = $target;
        }    function set_cookie( $str )
        {
            $this->cookie = $str;
        }
        
        function set_target( $target )
        {
            $this->target = $target;
        }
        
        function set_referer( $url )
        {
            $this->referer = $url;
        }
        
        function get_base_header()
        {
        
            $header .= "Accept: ".$this->accept.CRLF;
            
            if ( $this->referer != "" )
            {
                $header .= "Referer: ".$this->referer.CRLF;
            }
            
            $header .= "Accept-Language: ".$this->accept_language.CRLF;
            $header .= "Accept-Encoding: ".$this->accept_encoding.CRLF;
            $header .= "User-Agent: ".$this->user_agent.CRLF;
            
            if ( $this->host != "" )
            {
                $header .= "Host: ".$this->host.CRLF;
            }        $header .= "Pragma: ".$this->pragma.CRLF;
            $header .= "Cache-Control: ".$this->cache_control.CRLF;
            $header .= "Connection: ".$this->connection.CRLF;
            
            if ( $this->cookie != "" )
            {
                $header .= "Cookie: ".$this->cookie.CRLF;
            }
            
            return $header;
        }
        
        function method_get()
        {
            $str = "GET ".$this->target." HTTP/1.1".CRLF;
            $str .= $this->get_base_header();
            $str .= CRLF;
            
            return $str;
        }
        
        function method_post( $content )
        {
            $str = "POST ".$this->target." HTTP/1.1".CRLF;
            // $this->connection = "Keep Alive";
            
            $str .= $this->get_base_header();
            
            $str .= "Content-type: application/x-www-form-urlencoded".CRLF;
            $str .= "Content-length: ".strlen( $content ).CRLF;
            $str .= CRLF;
            
            $str .= $content;
            
            return $str;
        }
    }使用方法是:$host = "www.example.com";$target = "/";$client = new Browser( $host, $target );$form = "username=user";//form内容……$request = $client->method_post( $form );
    fputs( $fp, $request );
    while( !feof($fp) )
    {
    str .= fgets($fp,2048);
    }
      

  3.   

    并且在UNIX + PHP , 或LINX + PHP的环境下可以用的方法,
    在这两个下面俺真的不懂,给你顶
      

  4.   

    总的说来就是用socket模拟post方法,进行操作