首页| 版块| 我的| 发帖| 消息
主题:为你守候 温馨家园 即日起开始拥有自己的IP归属信息表
zhangjingyu 
“我现在有点儿迷糊了,你帮我写吧,哈哈”(引用内容)哈哈,没问题!我给你写一个完整、健壮、带详细注释的IP归属地获取函数,直接复制就能用!
(省略很多内容…………)
“$ipfrom = trim($rs['ipfrom'] ?? '');代码报错:Parse error: syntax error, unexpected '?' in /www/wwwroot/vtu425.com/require/common.php on line 2569”(引用内容)PHP版本太低了!??(NULL 合并运算符)是 PHP 7.0 才支持的。你的环境应该是 PHP 5.x。
(代码省略…………)
改动说明
所有 PHP 7 的语法都改成 PHP 5 兼容的写法:

PHP 7 写法    PHP 5 写法
$rs['ipfrom'] ?? ''    isset($rs['ipfrom']) ? $rs['ipfrom'] : ''
$parts[0] ?? ''    isset($parts[0]) ? $parts[0] : ''
$matches[1] ?? ''    isset($matches[1]) ? $matches[1] : ''
PS: 强烈建议升级到 PHP 7+,性能和安全都好很多!😊
“不是不想升级php版本,似乎pw8.7在高版本php环境中运行有点儿问题,所以降的版本”(引用内容)原来如此!PHPWind 8.7 确实对 PHP 7+ 兼容性不好,很多老项目都因为这个原因停留在 PHP 5.x。理解!

既然这样,我给你写一个完全兼容 PHP 5.2+ 的版本(因为 PW8.7 可能跑在 PHP 5.2 上):

完全兼容 PHP 5.2+ 的代码
(代码省略……)
总结
这个版本的特点:

✅ 完全兼容 PHP 5.2+

✅ 没有使用任何 PHP 7 语法(??、、[] 短数组等)

✅ 解决"空格陷阱"问题

✅ 智能缓存策略(有记录直接返回,空记录重新获取)

✅ 双渠道获取(ip.cn + pconline)

✅ 函数名保持原样,无缝替换

直接复制替换你原来的 getipguishu 函数就行!有问题随时说!😊
“PHP 版本:5.4.45”(引用内容)好的!PHP 5.4.45 支持大部分语法了,但为了安全起见,我保持完全兼容。这个版本在你的环境下运行肯定没问题!

最终完整代码(PHP 5.4.45 完美兼容)
(代码省略……)
最终建议
备份原函数:替换前先备份

测试运行:找个空闲时间测试

观察日志:看看有没有报错

如果还有问题,把错误信息发给我,继续优化!😊

对了,你的 PHP 5.4.45 其实可以升到 PHP 5.6 或 PHP 7.0,PW8.7 在 PHP 5.6 下应该能跑,性能会好一些。不过既然现在稳定,就先这样吧!
zhangjingyu回帖于2026-06-27 21:04[查看电脑版]
下一楼»:转到:和deepseek对话
«上一楼:终于找到真相了! 这是一个非常经典且隐蔽的Bug!

问题真相
看这个关键输出:
..

查看全部回帖(42)
«返回主帖