手册上看到的,没试过pflaume dot NOSPAM at NOSPAM dot gmx dot de's proxy_url() was very helpful to me!
Although, I still had a problem: proxy authentication.So I added some code to enable http get through a proxy with user authentication.<?php
function proxy_url($proxy_url)
{
   $proxy_name = '127.0.0.1';
   $proxy_port = 4001;
   $proxy_user = "user";    // added
   $proxy_pass = "password";    // added
   $proxy_cont = '';   $proxy_fp = fsockopen($proxy_name, $proxy_port);
   if (!$proxy_fp)    {return false;}
   fputs($proxy_fp, "GET $proxy_url HTTP/1.0\r\nHost: $proxy_name\r\n");
   fputs($proxy_fp, "Proxy-Authorization: Basic " . base64_encode ("$proxy_user:$proxy_pass") . "\r\n\r\n");    // added
   while(!feof($proxy_fp)) {$proxy_cont .= fread($proxy_fp,4096);}
   fclose($proxy_fp);
   $proxy_cont = substr($proxy_cont, strpos($proxy_cont,"\r\n\r\n")+4);
   return $proxy_cont;
}
?> 

解决方案 »

  1.   

    如果curl可用那么就简单多了,只要加一句
    curl_setopt($ch, CURLOPT_PROXY, "$proxy_host:$proxy_port");
    就可以了
      

  2.   

    上面的 proxy_url 函数工作正常,速度也很快。比我原来写的要快不少请注意正确设置
       $proxy_name = '127.0.0.1';
       $proxy_port = 4001;
       $proxy_user = "user";    // added
       $proxy_pass = "password";    // added
       $proxy_cont = '';
      

  3.   

    的确是可以的,我忘了proxy_url()传入的参数应该是"http://www.google.com",而不是“www.google.com”。