首页 / PHP / 请教个fopensocket的问题
请教个fopensocket的问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了请教个fopensocket的问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2128字,纯文字阅读大概需要4分钟。
内容图文
![请教个fopensocket的问题](/upload/InfoBanner/zyjiaocheng/200/3b032f518687458e9e156ffcc69ba766.jpg)
write.php
$fp = fsockopen('localhost',80,&$errno,&$errstr,5);
if(!$fp)
{
echo "$errstr ($errno)
\n";
}
else
{
fputs($fp,"GET / HTTP/1.0\nHost: http://localhost/1.php");
fclose($fp);
}
?>
在localhost根目录下存在1.php,但测试运行write.php后,
发现1.php并没有被执行,单独执行1.php是可以运行
请问为什么?
试过把http://localhsot/1.php改为1.php也不行;过程中没提示无法创建套链接
回复讨论(解决方案)
$fp = fsockopen('localhost', 80, $errno, $errstr, 5); if(!$fp) { echo "$errstr ($errno)
\n"; }else { fputs($fp,"GET /1.php HTTP/1.0\r\nHost: localhost\r\nConnection: Close\r\n\r\n"); while (!feof($fp)) { echo fgets($fp, 128); } fclose($fp);}
$fp = fsockopen('localhost', 80, $errno, $errstr, 5); if(!$fp) { echo "$errstr ($errno)
\n"; }else { fputs($fp,"GET /1.php HTTP/1.0\r\nHost: localhost\r\nConnection: Close\r\n\r\n"); while (!feof($fp)) { echo fgets($fp, 128); } fclose($fp);}
在本地测试的时候,其他电脑访问我这台电脑,用ip的方式可以正常执行,即假设我测试ip为192.168.10.60,
其他电脑使用http://192.168.10.60/write.php可以正常;
但把程序放到服务器上去,服务器ip假设为192.168.10.3,
运行却无法执行,需要把
连接方式变成192.168.10.3,然后fputs的时候,要写绝对路径才可以……这是啥情况?
这不是很正常吗?
你放到192.168.10.3
就不是localhost了,当然要用绝对ip访问,有什么问题?
这不是很正常吗?
两点不正常
1、以我本机为测试主机时,其他机器访问我本机,在使用localhost的时候可以正常运行;而把程序放到服务器时,我本机访问服务器就不行;
2、我说的写绝对路径是不是指fsocketopen建立链接时写,而是譬如当程序是放在web目录下的ca/ma目录下时,下面的
fwrite的路径要写192.168.10.3/ca/ma/1.php,即便我write程序与1.php程序是放置在同一目录下也需要这样。
但同样的这个现象我放在本地时,用其他电脑访问本地却正常。本地是win系统,服务器是linux系统,然道是因为OS的关系?
1、程序是在你的机器上运行的,所以用 localhost 能访问到是正常的,用你机器的 ip 能访问到也是正常的
2、当程序搬迁至服务器上时,按理说用 localhost 也是能访问到的,但由于服务器的特殊性可能没有做 127.0.0.1 到 localhost 的映射,那么就访问不到了。
内容总结
以上是互联网集市为您收集整理的请教个fopensocket的问题全部内容,希望文章能够帮你解决请教个fopensocket的问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。