如何在PHP中使用XML Reader在远程服务器上打开文件?

时间:2011-11-14 15:44:30

标签: php xml ftp xmlreader

我有一个巨大的xml文件(~85 Mo),我想用XML Reader打开它(然后我的脚本读取选定的行)。我已经将它下载到我的电脑上并且我的脚本正常工作(使用Wamp)。

现在我想在网上做同样的事情。服务器登录是 aaa ,密码是 bbb (当然这是一个例子)。

我尝试了以下声明:

$xml = new XMLReader();
if ($xml->open('ftp://aaa:bbb@ftp.website.com/myfile.xml')){
    echo 'OK';
}

while($xml->read()){
    // my script here... 
}

似乎我错了,因为我的网络浏览器指示我的页面太长而无法加载。继续进行的好方法是什么?还是我错过了重要的事情?

4 个答案:

答案 0 :(得分:4)

由于有问题的文件是XML,部分下载它是不明智的,因为它可能会破坏xml结构,使解析器失败。

您可以偶尔获取一个cronjob来检索文件,然后从服务器上的本地位置打开它,或者检索一次并在本地缓存它以便它可以加快后续请求。

答案 1 :(得分:0)

http://davidwalsh.name/increase-php-script-execution-time-limit-ini_set 默认执行时间为20秒或30,将其增加到1分钟并重试

答案 2 :(得分:0)

我会使用curl连接到FTP服务器并下载文件。

http://php.net/manual/en/book.curl.php

答案 3 :(得分:0)

最好先使用PHP的FTP functions将文件下载到服务器,然后在本地打开文件。我不会依赖在XML库中使用FTP,你会以这种方式获得更大的灵活性。