我在echo中得到了不需要的数字

时间:2014-01-12 13:37:10

标签: php geoip maxmind

我已使用此代码

$ip =  change_ipv4_ipv6($_SERVER['REMOTE_ADDR']);
$giasn = geoip_open("GeoIPASNumv6.dat", GEOIP_STANDARD);
$asn = geoip_name_by_addr_v6($giasn, $ip);
geoip_close($giasn);

在这段代码之后我回复了这样的记录

echo 'Shell';

它给出了这样的结果

  

1111111111111111111Shell

当我删除geopip代码时,它会显示如下所示的结果

  

壳牌

我想要乘坐这些人。任何建议

感谢

5 个答案:

答案 0 :(得分:1)

很可能在其中一个函数中的某个位置正在打印。

在geoip函数中搜索print / echo,它在黑暗中是一个刺,但我想猜测它是在回显一个布尔值。

当你说"When i remove geopip code then it shows result like belo"w

这应该会给你一个线索,即回声来自 geoip代码,尝试逐个注释掉这些函数,找出导致它的函数。

答案 1 :(得分:1)

我使用最新版本的GeoIP from GitHub对此进行了测试,但我无法重现它。我建议升级您的库版本。

答案 2 :(得分:0)

这些肯定会在代码中的其他地方得到回应。尝试包含未修改的geoip库副本,或者尝试在代码中找到它们回显的确切位置。

答案 3 :(得分:0)

您可以使用ob_start()ob_end_clean()来抑制geoip功能的输出:

ob_start();
$ip =  change_ipv4_ipv6($_SERVER['REMOTE_ADDR']);
$giasn = geoip_open("GeoIPASNumv6.dat", GEOIP_STANDARD);
$asn = geoip_name_by_addr_v6($giasn, $ip);
geoip_close($giasn);
ob_end_clean();

echo 'Shell';

答案 4 :(得分:0)

我遇到了问题。放在这里可能有助于其他人来这篇文章

我在我的代码中调用了一个函数来转换ip类。

change_ipv4_ipv6($_SERVER['REMOTE_ADDR']);

在这个功能中我回应了答案。我用return替换所有echo。现在1111111消失了。谢谢你的有用答案