当名称作为变量而不是字符串文字传入时,PHP gethostbyname() 返回名称而不是 IP
我在一些有价值的讨论中看到了类似的问题,但没有任何问题。
如果我将一个变量说 $domain 传递给 gethostbyname() 其中 $domain 是由 foreach 循环创建的字符串值,则返回值始终正是我输入的值 - 例如,如果 $domain =="google.com " 返回值为 google.com。使用字符串文字调用相同的函数 gethostbyname() 我得到了 IP 地址。gethostbyname('google.com')
这是一个已知的错误?有解决方法吗?我将不胜感激任何帮助。
谢谢
此代码失败 - 为结果生成 $url 的值:
foreach ($this->domainNames as $url){
$ips[]=gethostbyname($url);
}
第二组代码两次给出正确的 IP 地址($this->domainNames 中的每个值一次:
foreach ($this->domainNames as $url){
$ips[]=gethostbyname('google.com');
}
解决方案:事实证明,这导致我的变量中有一些草率的空间,这些空间在创建我的 $this->domainNames 数组值时使用修剪修复。