file_get_contents()是阻塞函数吗?

pat*_*shi 4 php file-get-contents blocking

我通过file_get_contents连接到不可靠的API.由于它不可靠,我决定将api调用放入while循环中:

$resultJSON = FALSE;

while(!$resultJSON) {
    $resultJSON = file_get_contents($apiURL);
    set_time_limit(10);
}
Run Code Online (Sandbox Code Playgroud)

换句话说:在第3次尝试成功之前说API失败了两次.我是否发送了3个请求,或者我已经发送了数百个请求,这些请求是否符合3秒窗口的要求?

dus*_*uff 8

file_get_contents()和基本上PHP中的所有函数一样,是一个阻塞调用.

  • `file_get_contents`是fopen/fread/fclose的简写,它也支持URL.但这不是用PHP读取URL的唯一方法(没有cURL等),可以使用`fsockopen`,`STREAM_CLIENT_ASYNC_CONNECT`和/或`stream_set_blocking`来实现非阻塞模式.你的答案没有错,我只是saiyan.干杯. (3认同)