在W3Schools PHP在线工具运行代码遇getaddrinfo错误,求排查
问题
在W3Schools的PHP在线运行工具中执行代码时出现报错,代码如下:
$file="https://www.w3schools.com/html/pic_trulli.jpg"; function resize_image($file, $w, $h, $crop=FALSE) { list($width, $height) = getimagesize($file); echo $width; } $w=100; $h=100; resize_image($file, $w, $h);
报错信息(中文翻译):
PHP 警告: getimagesize(): php_network_getaddresses: getaddrinfo 失败: 名称解析临时失败 in /home/j6Tv9z/prog.php 第4行
PHP 警告: getimagesize(https://www.w3schools.com/html/pic_trulli.jpg): 无法打开流: php_network_getaddresses: getaddrinfo 失败: 名称解析临时失败 in /home/j6Tv9z/prog.php 第4行
解答
问题出在W3Schools的在线PHP运行环境做了网络限制,不允许发起外部网络请求。你用getimagesize()传入远程图片URL时,需要解析域名并请求资源,但环境的网络策略导致域名解析失败,所以触发了报错。
解决办法:
- 换用本地图片测试:如果要验证图片处理逻辑,使用本地图片文件(但W3Schools在线工具不支持上传本地文件,建议换用支持文件上传或允许外部请求的PHP在线工具)。
- 本地环境测试:在自己电脑的PHP环境中运行这段代码,本地环境默认允许网络请求,能正常解析域名并获取远程图片的尺寸信息。
内容的提问来源于stack exchange,提问作者kmboon
相关产品推荐
相关产品推荐

