Fopen иstream_select не работают после обновления PHP 8Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Fopen иstream_select не работают после обновления PHP 8

Сообщение Anonymous »

Я обновил приложение PHP 7 до PHP 8. Следующий код работал раньше, но больше не работал:

Код: Выделить всё

$options = [
'http' => [
'method' => 'POST',
'header' => "Content-Type: application/x-www-form-urlencoded\r\n"
. 'Content-Length: ' . strlen($content),
'content' => $content,
'timeout' => 30,
],
];
$context = stream_context_create($options);
$stream = fopen($url, 'r', false, $context);

$read[] = $stream;
$write = null;
$except = null;
$streamsChanged = stream_select($read, $write, $except, 0, 50000);
Теперь вызовstream_select выдает следующую ошибку:

Код: Выделить всё

Type: ValueError
Message: No stream arrays were passed
Я попробовал тот же вызов POST с использованием Insomnia без каких-либо проблем, так что, похоже, это связано с тем, как я использую PHP 8.
Var_dump $stream возвращает ресурс(поток), поэтому тип кажется правильным. Я также запустил:

Код: Выделить всё

is_resource($stream)
&& get_resource_type($stream) === 'stream'
&& !feof($stream)
и всё прошло.


Подробнее здесь: https://stackoverflow.com/questions/798 ... -8-upgrade
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»