PHP:使用asXML()将XML文件转换为更快的file_get_contents或simplexml_load_file

时间:2010-09-09 05:09:53

标签: php xml web-services simplexml

我正在编写一个代理服务,用于缓存我的移动应用程序对webservice的查询。 (就像中间人一样)

我构建的代理站点的任务是将从应用程序获取的查询传递给第三方Web服务,并将来自第三方Web服务的响应保存为XML文件,并将所有后续调用从XML读取到同一查询文件并提供响应(基本上缓存响应 - 使用Php,curl和simplexml_load_file)。

现在我的问题是 - 读取xml文件并返回字符串的推荐方法是什么。

选项1: $ contents = file_get_contents($ filename); echo $ contents;

选项2: $ XML =使用simplexml_load_file($文件名) echo $ xml-> asXML();

1 个答案:

答案 0 :(得分:4)

readfile($filename);

file_get_contents / echo首先将整个内容读入php进程的内存,然后将其发送到输出流。如果您想要转发所有内容,则没有必要将整个内容留在内存中 simplexml_load_file()不仅将整个内容读入内存,还会解析需要额外时间的文档。如果您不想从文档中获取特定数据或测试/修改它,则再次没必要。

readfile()将内容直接发送到输出流,并且可以“以任何方式看待它”。即如果支持可以使用内存映射文件,如果不支持它至少可以读取较小块的内容。