首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >php_network_getaddresses: getaddrinfo失败:名称或服务未知

php_network_getaddresses: getaddrinfo失败:名称或服务未知
EN

Stack Overflow用户
提问于 2010-04-18 16:02:38
回答 10查看 437.2K关注 0票数 67

下面是我的代码片段

$fp = fsockopen($s['url'], 80, $errno, $errstr, 5);
if($fp){
        fwrite($fp, $out);
        fclose($fp);

当我运行它时,它输出:

无法连接到www.mydomain.net/1/file.php:80 (php_network_getaddresses: getaddrinfo失败:名称或服务未知

我使用它将GET数据提交到$s['url']

我不知道为什么。任何帮助都将不胜感激。

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2010-04-18 16:16:45

如果您只想将GET数据提交到URL,则应该使用简单的内容,如file_get_contents();

$myGetData = "?var1=val1&var2=val2";
file_get_contents($url.$myGetData);
票数 24
EN

Stack Overflow用户

发布于 2010-04-18 16:11:57

不能使用fsockopen直接打开与远程主机上路径的连接。当第一个参数的唯一有效值是主机www.mydomain.net时,url www.mydomain.net/1/file.php包含路径。

如果您试图访问远程URL,那么file_get_contents()是您最好的选择。您可以为该函数提供完整的URL,它将使用普通的HTTP请求获取该位置的内容。

如果您只想发送一个超文本传输协议请求并忽略响应,那么可以使用fsockopen()并手动发送超文本传输协议请求头,忽略任何响应。不过,使用cURL可能会更容易,或者只使用普通的老式fopen(),它将打开连接,但不一定读取任何响应。如果你想用fsockopen()来做这件事,它可能是这样的:

$fp = fsockopen("www.mydomain.net", 80, $errno, $errstr, 30);
fputs($fp, "GET /1/file.php HTTP/1.1\n");
fputs($fp, "Host: www.mydomain.net\n");
fputs($fp, "Connection: close\n\n"); 

当然,任何错误处理都由您决定,但这意味着您不会浪费时间阅读响应。

票数 38
EN

Stack Overflow用户

发布于 2012-10-20 17:35:30

我在我的本地测试服务器和本地测试域上遇到了类似的问题,例如:使用函数GetImageSize()的www.testdomain.loc;

通过在本地服务器上的hosts文件中添加主机名解决了此问题:

在文件/etc/hosts中,我添加了:

192.168.1.1 www.testdomain.loc

希望这对任何人都有帮助

票数 27
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2661546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档