如果对不起,这可能已在其他地方得到解答。我在远程服务器上有一个动态XML文档,第一行有<?xml version="1.0" encoding="UTF-8"?>
行。由于?&gt;
我的问题是如何在不导致PHP抛出异常的情况下将此文档包含在我的页面中?
干杯
编辑:我使用require
包括,可能不是正确的方法吗?
答案 0 :(得分:4)
require
和include
是错误的工具。两者都包含页面,是 - 然后他们尝试在您的计算机上将其作为PHP代码运行,而没有任何安全措施。想象一下,如果远程计算机返回<?php system('poweroff') ?>
会发生什么 - 您的计算机上的PHP会很乐意尝试关闭您的服务器。
您正在寻找的功能是readfile() - 它会获取远程文件并将其输出 - 而不是尝试将其作为PHP运行。
答案 1 :(得分:3)
这听起来像short_open_tag
配置选项的问题,它会将<?
解释为PHP开始标记。您可能需要尝试使用ini_set()函数在包含远程文件之前立即将short_open_tag
设置为false
,然后再将其切换回来。
编辑:如果您引用的文件/ URL不包含任何需要运行的PHP代码,您可以使用readfile()函数一次性读取和输出其内容。如果从服务器下载的文件包含PHP代码段,这将会中断,但如果数据完全可以使用,则该代码将起作用。