php filesize返回stat失败错误

时间:2013-10-15 00:14:39

标签: php operator-keyword filesize

我打电话给以下人员:

while ( (!file_exists('./download/ah141090676723_100.jpg')) || (filesize('./download/ah141090676723_100.jpg') == '1359') ) { code that retrieves a remote file and writes it to '/ah141090676723_100.jpg'  }

...并且收到“filesize():stat失败./download/ah141090676723_100.jpg”错误。

我试图解决的问题是远程服务器是片状的,有时会返回垃圾响应(总是1359字节长)。所以,我想查看是否A)文件不存在(首先运行),或者B)文件是否等于垃圾(1359);如果其中一个为真,则尝试抓取并写入文件。冲洗并重复,直到我们得到不是垃圾的东西。

代码实际上似乎正在工作 - 文件被检索和编写,我没有任何垃圾响应通过这个循环 - 但错误使我神秘。我认为可能是在第一次运行时,文件不存在,所以filesize会抛出此错误。但是“||”操作员应该防止第一次贯穿的第二次评估......对吗?

我应该提一下,我称之为“clearstatcache();”在检索/写入之后,在循环内部。

任何帮助表示赞赏!

斯科特

1 个答案:

答案 0 :(得分:1)

更改为

Object

始终需要while ( file_exists('./download/ah141090676723_100.jpg') && filesize('./download/ah141090676723_100.jpg') == 1359) 。当文件不存在或不可读时,file_exists返回“stat failed”。