php8.1 までで起こる
SplFileInfo / SplFileObject / SplTempFileObject で php://memory php://stream を使うとエラーになる。
<?php $sf= new \SplTempFileObject(); $sf->fwrite($ret); $sf->getSize(); // =>Error
対応
fstat は動くのでそっちを使う。
<?php $sf= new \SplTempFileObject(); $sf->fwrite($ret); $sf->fstat()['size']; // => ok
こんなの気づかないよねぇ。
すでにパッチは投稿されていた
https://github.com/php/php-src/pull/4186
パット見だとClosedになっているので、そのうち使えるようになると思う。