Php 向iPhone/Blackberry/PalmPre提供视频数据时出现问题

Php 向iPhone/Blackberry/PalmPre提供视频数据时出现问题,php,iphone,blackberry,Php,Iphone,Blackberry,我有一个小脚本,我正在尝试移植,用于向iPhone/Blackberry/PalmPre等提供视频数据 代码非常简单: $type = "video/3gpp"; /* get mimetype from db */ $fileid = "0001"; /* File path from db */ header( "Content-Length: " . filesize( $fileId ) ); header( "Content-type: $type" ); readfile( $fil

我有一个小脚本,我正在尝试移植,用于向iPhone/Blackberry/PalmPre等提供视频数据

代码非常简单:

$type = "video/3gpp"; /* get mimetype from db */
$fileid = "0001"; /* File path from db */
header( "Content-Length: " . filesize( $fileId ) );
header( "Content-type: $type" );
readfile( $fileId );
它只是根据参数获取一个文件id,并使用readfile将文件发送给请求者

然而,出于某种奇怪的原因,它只能工作一次。 如果你在iPhone和BlackBerry上连续两次访问该页面,第一次就可以了。之后的任何时间,它都将超时或停止响应请求。这种行为在非移动设备上不一样,在Firefox/Safari/Chrome中可以正常工作。我相当肯定这与非移动端的缓存无关


你知道为什么会这样吗

看起来这可能是由于PHP在发送数据时无法检测浏览器何时关闭连接而导致的


查看自2004年以来在PHP中打开的错误

查看服务器上的实际原始HTTP响应头可能会有所帮助-使用curl或其他类似代理的工具,如Charles或Fiddler2。