我正在通过PHP代理like here访问XML API(航班搜索比较)。PHP:读取正在通过XML API更新的远程文件
API始终有一个完整的文件供下载。第一个版本说明有0个结果,然后在调用它几次之后弹出第一个结果。
API文档说:
结果方法将总是给你 信息搜索结果的当前状态。你可以多次拨打电话(可能用阿贾克斯电话)
我的问题是,我不知道什么时候完成,即所有结果都交付。
我尝试这样做:
读,直到
feof
,然后通过fseek()
重置文件指针位置,并等待一点点like here但是,这并不工作,因为该流不支持fseek()
。等待几秒,然后显示结果,但是,这并不正常工作的API有时需要很长的(和我没有得到的一切)
读,直到
feof
,然后使用ftell()
看到新的东西是否已经被写入文件,但是我没有可能做一些事情之后...$handle = fopen($flights_url, "r"); if ($handle) { while (!feof($handle)) { $buffer = fgets($handle); echo $buffer; } fclose($handle); }
我现在没有想法。这应该如何以好的方式完成?
-T
编辑:改变格式,并添加一些代码
XML API像你正在提出一个http请求?那么你正在发送文件的快照,而不是正确的流?你的fopen或类似的电话是什么样的? –
它非常依赖于你正在使用的API。没有通用的方法来完成你所要求的。 – lanzz
@MikeB:添加了一些代码。 – thomas