PHP的fopen允许您fopen()
http位置作为文件流
但是你不能fseek()
或rewind()
他们,除了fclose()
和fopen()
之外,有没有办法实现此目的?
答案 0 :(得分:4)
其他人提到它:PHP不支持非本地流上的fseek()
和rewind()
。我建议你下载/缓存文件并与之交互。例如
$cache = fopen('php://temp', 'r+');
stream_copy_to_stream($remoteResource, $cache);
现在你应该可以使用$cache
之前使用$remoteResource
做的任何事情,除了你现在能够在内部寻找(因此也可以倒回)。如果关闭临时流,PHP将自动清理所有使用的资源。
答案 1 :(得分:1)
对于初学者,您不应该使用f____
函数来打开远程文件。这就是卷曲的目的。
我不相信有一种方法可以重置/回放远程套接字上的指针,所以除非PHP的文件函数缓冲并缓存流中的数据,否则我看不出它们如何允许你回放指针。
我可能错了,但是......我不是套接字专家。
答案 2 :(得分:0)
从PHP文档引用
注意:
并非所有流都支持寻求。对于那些不支持寻求的人来说,从当前位置向前寻求是通过阅读和完成 丢弃数据;其他形式的寻求将失败
与fseek()一样,如果fopen()使用“http://”或“ftp://”格式,则rewind()函数不能用于fopen()返回的文件指针。