我正在调用以下内容:
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 failed for ./download/ah141090676723_100.jpg”错误。
我要解决的问题是远程服务器不稳定,有时会返回垃圾响应(始终为 1359 字节长)。所以,我想检查是否 A)文件不存在(第一次运行),或 B)文件等于垃圾(1359);如果其中任何一个为真,请尝试抓取并写入文件。冲洗并重复,直到我们得到不是垃圾的东西。
代码实际上似乎在工作——文件被检索和写入,我没有通过这个循环得到任何垃圾响应——但这个错误让我感到困惑。我认为可能是在第一次运行时,该文件不存在,因此 filesize 抛出此错误。但是“||” 运营商应该阻止在第一次运行时进行第二次评估......对吗?
我应该提到我正在调用“clearstatcache();” 在循环内部,在检索/写入之后。
任何帮助表示赞赏!
斯科特