零基础入门PHP/HTML遇file_get_contents警告问题求助
解决file_get_contents调用API的警告问题
嘿,别着急!刚入门编程遇到这种警告太正常了,我来一步步帮你解决这个问题~
你遇到的Warning: file_get_contents(...)通常是因为PHP的配置限制或者SSL证书验证的问题,针对你的场景,我给你几个简单易懂的解决方案:
方法1:开启PHP的allow_url_fopen配置
默认情况下,有些XAMPP的PHP配置里allow_url_fopen是关闭的,这会阻止PHP通过URL获取内容:
- 打开XAMPP控制面板,点击Apache旁边的
Config,选择PHP (php.ini) - 在打开的php.ini文件里,搜索
allow_url_fopen - 把
allow_url_fopen = Off改成allow_url_fopen = On - 保存文件,重启Apache服务,再刷新页面试试
方法2:跳过SSL证书验证(仅适合本地测试)
有时候本地环境没有配置正确的SSL证书,调用HTTPS链接会报错。你可以给file_get_contents添加一个跳过验证的上下文,修改后的代码如下:
$url = "https://www.bitstamp.net/api/ticker/"; // 创建跳过SSL验证的上下文 $context = stream_context_create([ 'ssl' => [ 'verify_peer' => false, 'verify_peer_name' => false ] ]); $fgc = file_get_contents($url, false, $context); $json = json_decode($fgc, true); $price = $json["last"]; $high = $json["high"]; $low = $json["low"]; $date = date("m-d-Y - h:i:sa"); $open = $json["open"];
注意:这个方法只适合本地测试用,上线项目绝对不能这么做,会有安全风险!
方法3:用cURL替代file_get_contents(更稳定)
如果上面的方法都不行,cURL是兼容性更好的HTTP请求工具,很多生产环境都会用它。替换后的代码如下:
$url = "https://www.bitstamp.net/api/ticker/"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 测试环境跳过SSL验证 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); $fgc = curl_exec($ch); curl_close($ch); $json = json_decode($fgc, true); $price = $json["last"]; $high = $json["high"]; $low = $json["low"]; $date = date("m-d-Y - h:i:sa"); $open = $json["open"];
最后记得每次修改配置或代码后,重启Apache再测试哦!刚入门难免踩坑,慢慢来,你已经做得很棒了~
内容的提问来源于stack exchange,提问作者Saha Nov
相关产品推荐
相关产品推荐

