多年来,我一直在使用通常建议的方法来检查页面是在本地还是远程调用,方法是检查$_SERVER['SERVER_ADDR']
是否等于127.0.0.1或是否为空。其他问题已在讨论过此问题,例如this和this。其他超长球如$_SERVER['REMOTE_ADDR']
也经常被提及。
随着时间的推移,我发现这种方法有时似乎失败了。
我真正想知道的是脚本是在我的开发服务器(xampp,wamp,IDE调试器......)上还是在生产服务器上调用的。这样就可以正确设置Web根目录上方脚本的路径。虽然这有99.999%的时间有效,但似乎有时,当Apache重定向到404页面时,$_SERVER['SERVER_ADDR']
必须丢失,并且在生产服务器上运行的脚本会通过" local"测试。
因此,我正在寻找其他方法。当然我可能在Apache中做错了什么,但无论如何,在php中进行万无一失的测试会很好。
我想到了几个想法,我想知道这些想法是否安全,或者是否有人有更好的想法。
一个。一个想法是查看当前路径:类似
define ( 'DEV_SERVER',
(substr(
strtolower($_SERVER['DOCUMENT_ROOT']),
0,8)
=="c:/xampp")
);
B中。另一个想法是检查是否存在具有特定名称的本地文件,但是点击文件系统似乎太多了。
提前感谢所有见解!
答案 0 :(得分:0)
你也可以试试gethostname()。
虽然,最好的方法可能只是将dev特定的东西部署到开发服务器。即将这些脚本与生产/回归测试脚本分开。您不希望这些DEV服务器特定的内容意外地被用户看到。