我正在调用一个需要文件流资源的方法,如下所示:
$obj->method(fopen($splFileInfo, 'r+'));
$splFileInfo
对象是 SplFileInfo
的一个实例.有没有办法获取
$splFileInfo
的流资源对象而无需调用 fopen
?
最佳答案
您可以使用 openfile创建一个 SplFileObject ,它提供与资源类似的功能,但是以面向对象的方式。一个缺点是它不直接公开它包装的资源,因此您必须调整现在期望资源使用 SplFileObject 的任何实现。
一些示例代码向您展示我的意思:
class TextReader {
public function getFirstLine(SplFileInfo $file): string {
return $file->fgets();
}
}
$splFileInfo = new SplFileInfo('filename.txt');
$splFileObject = $splFileInfo->openFile('r+');
$reader = new TextReader();
echo $reader->getFirstLine($splFileObject);
关于php - 从 SplFileInfo 对象获取流资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20374969/