包括导致PHP崩溃的页面中的XML

时间:2010-11-28 06:21:08

标签: php xml include

如果对不起,这可能已在其他地方得到解答。我在远程服务器上有一个动态XML文档,第一行有<?xml version="1.0" encoding="UTF-8"?>行。由于?&gt;

,这导致PHP抛出我猜的豁免

我的问题是如何在不导致PHP抛出异常的情况下将此文档包含在我的页面中?

干杯

编辑:我使用require包括,可能不是正确的方法吗?

2 个答案:

答案 0 :(得分:4)

requireinclude是错误的工具。两者都包含页面,是 - 然后他们尝试在您的计算机上将其作为PHP代码运行,而没有任何安全措施。想象一下,如果远程计算机返回<?php system('poweroff') ?>会发生什么 - 您的计算机上的PHP会很乐意尝试关闭您的服务器。

您正在寻找的功能是readfile() - 它会获取远程文件并将其输出 - 而不是尝试将其作为PHP运行。

答案 1 :(得分:3)

这听起来像short_open_tag配置选项的问题,它会将<?解释为PHP开始标记。您可能需要尝试使用ini_set()函数在包含远程文件之前立即将short_open_tag设置为false,然后再将其切换回来。

编辑:如果您引用的文件/ URL不包含任何需要运行的PHP代码,您可以使用readfile()函数一次性读取和输出其内容。如果从服务器下载的文件包含PHP代码段,这将会中断,但如果数据完全可以使用,则该代码将起作用。