file_get_contents调用自定义PHP脚本无返回,服务端需满足哪些要求?
问题根源
- 你使用
file_get_contents("tools.php")时传入的是本地文件路径,PHP会直接读取tools.php的源代码,不会执行内部的PHP逻辑,拿到的是原始PHP代码而非运行后的IP结果。 - Web环境下浏览器会把
<?php ?>标签识别为未知HTML标签直接过滤,所以你看不到任何输出,看起来就像没有返回内容。 - 你之前调用第三方接口时传入的是HTTP URL,file_get_contents会发起HTTP请求,对方服务器执行脚本后返回纯文本IP,这才是你预期的逻辑。
解决方案
方案1:完全对齐原第三方接口调用逻辑(无代码侵入)
把file_get_contents的参数换成你站点下tools.php的HTTP访问地址即可,示例:
// 替换为你实际站点的域名或本地访问地址 $globalIP = file_get_contents("http://localhost/tools.php"); echo $globalIP;
注意要确保php.ini配置项allow_url_fopen = On,该配置默认开启,关闭状态下无法通过file_get_contents请求HTTP地址。
方案2:本地直接引用(性能更高)
不需要走HTTP请求,直接在index.php中引入tools.php的逻辑即可,效率更高:
// index.php中直接引入执行tools.php include "tools.php"; // 直接使用tools.php中定义的$ip变量 $globalIP = $ip; echo $globalIP;
内容的提问来源于stack exchange,提问作者7segment
相关产品推荐
相关产品推荐

