代码之家  ›  专栏  ›  技术社区  ›  Abs

如何在代理后面使用file_get_contents()?

  •  3
  • Abs  · 技术社区  · 15 年前

    当我们使用文件获取内容时,PHP使用什么来解析域名(本地DNS??)。

    我问是因为我犯了这个错误:

    警告: http://external-domain.com ) [函数.文件获取内容]:失败 打开流:连接尝试 失败,因为关联方 时间,或建立的连接失败 因为连接的主机未能 回应。在C:\ test.php的第11行

    file_get_contents() 在内部URL上,即。 http://localhost:9090 ,问题是我的windows计算机上的hosts文件中没有localhost到127.0.0.1的映射。添加这个之后,我可以使用 在内部URL上。

    这能用类似的方法解决吗?

    4 回复  |  直到 11 年前
        1
  •  3
  •   bradym    15 年前

    你是代理人吗?如果是的话,你需要告诉PHP关于它的使用 stream_context_set_default 或者通过传递使用 stream_context_create file_get_contents .

        2
  •  2
  •   Reza Hussain    13 年前

    我遇到这个问题,是因为php.in I中的默认套接字超时值太小。

    在你的情况下,我会把它的价值加倍,看看它是否能解决这个问题。

        3
  •  1
  •   CodingYourLife    12 年前

    $fileUrl = "http://selfDomain.com/file.txt";
    
    //external path to local path fix
    $fileUrl = str_replace($_SERVER["SERVER_NAME"], $_SERVER["LOCAL_ADDR"], $fileUrl);
    
        4
  •  0
  •   josliber Martin Ballet    11 年前

    只要用这个,你的问题就解决了。

    file_get_contents("http://external-domain.com",true) 
    
    推荐文章