php - 无法在 PHP 中的 file_get_contents 上打开流
问题描述
我正在尝试使用不同类型的 id 重复地从上下文资源中获取文件内容。每次我运行脚本时,各种 id 都会随机发生错误,并且还会给出某些情况的结果。
<?php
$values = [5,6,9,12,18,20,25,30,32,36,37,38,40,42,45,47,49,50];
$result = [];
foreach($values as $value){
$response = url_get_contents( "https://example.com/api?id=$value" );
array_push( $result,$response );
}
print_r( $result );
警告是
failed to open stream: A connection attempt failed because the connected
party did not properly respond after a period of time, or established
connection failed because connected host has failed to respond
当我尝试通过对此文件进行 ajax 调用以 JSON 格式将结果反映在 html 中时。控制台中的结果看起来像
{
"18": {
"rollnumber": "5",
"status": false
},
"19": {
"rollnumber": "6",
"status": "Fail"
},
"20": {
"rollnumber": "9",
"status": "Fail"
},
"21": {
"rollnumber": "12",
"status": false
},
"22": {
"rollnumber": "18",
"status": false
},
"23": {
"rollnumber": "20",
"status": false
},
"24": {
"rollnumber": "25",
"status": "Pass"
},
"25": {
"rollnumber": "30",
"status": "Fail"
},
"26": {
"rollnumber": "32",
"status": "Pass"
},
"27": {
"rollnumber": "36",
"status": "Fail"
},
"28": {
"rollnumber": "37",
"status": false
},
"29": {
"rollnumber": "38",
"status": false
},
"30": {
"rollnumber": "40",
"status": "Pass"
},
"31": {
"rollnumber": "42",
"status": false
},
"32": {
"rollnumber": "45",
"status": false
},
"33": {
"rollnumber": "47",
"status": "Pass"
},
"34": {
"rollnumber": "49",
"status": "Pass"
},
"35": {
"rollnumber": "50",
"status": "Pass"
}
}
只要 status 的数组值为 false,就会发生上述错误,因为 file_get_contents 给出的是 false。但是,如果我再次运行它,结果会改变,事实上,卷号 5 的先前状态结果是有效的,现在它是错误的。任何帮助将不胜感激 !
解决方案
推荐阅读
- cmake - 无法构建仅针对 compile-rt(无 libgcc)链接的带有内存清理工具的 libc++?
- javascript - 开玩笑的覆盖以一种奇怪的方式仅缺少 if 条件行 - 为什么以及如何修复
- javascript - 寻找有关将 Parceljs 与 Backbone.js 一起使用的建议
- python-3.x - Python asyncio sleep 没有唤醒
- c++ - 如何使自定义 C++ 类成为 QML 类型?
- sql-server - 查找字段中特定字符的出现并检索数据直到数据开始
- if-statement - 日历日等于数字时的条件 IF
- loops - 从 List.map() 获取迭代索引
- php - 尝试使用 foreach 循环使用 MYSQL 选择一行数据
- python - 我无法在 python 中使用遗传算法得到正确答案