stream_set_blocking
为资源流设置阻塞或者阻塞模式
<h2>适用PHP版本</h2>
<p>PHP 4.3.0 及以上版本支持该函数。</p>
<h2>函数说明</h2>
<p>stream_set_blocking 函数用于设置文件流的阻塞模式。可以通过此函数设置文件流的读取/写入是否为阻塞模式。如果设置为阻塞模式,读取操作会等待数据准备好。如果设置为非阻塞模式,读取操作则立即返回,不会等待数据准备好。</p>
<h2>函数语法</h2>
<p>stream_set_blocking(resource $stream, bool $mode): bool
$stream = fopen('example.txt', 'r');
if ($stream === false) {
echo "无法打开文件";
} else {
// 设置为非阻塞模式
stream_set_blocking($stream, false);
// 读取文件内容(如果没有内容,函数将不会阻塞)
$data = fread($stream, 1024);
if ($data === false) {
echo "读取数据失败";
} else {
echo "读取的数据:$data";
}
fclose($stream);
}
在这个示例中,首先通过 fopen 打开一个文件流,然后使用 stream_set_blocking 函数将该文件流设置为非阻塞模式。接着尝试读取文件内容。如果没有数据可读取,读取操作会立即返回,而不会阻塞脚本的执行。最后,关闭文件流。