PHP文件返回XML文件的内容

时间:2015-11-26 10:44:03

标签: php xml file server

我在阅读通过PHP在我的服务器上托管的XML文件的内容时遇到了问题。 在我的托管目录中,我有1个PHP文件&其他3个是XML文件。 XML文件已经填满。他们有文本数据。我需要的是,如果我将Value1传递给我的php文件,它应该读取File1.xml&按原样返回其内容。如果我将Value2传递给我的php文件,它应该读取File2.xml&按原样返回其内容。我试图在Stackoverflow上搜索,但没有找到与此特定问题相关的任何内容。

4 个答案:

答案 0 :(得分:1)

{{3}}

<?php
    echo file_get_contents($_POST["value"]);
?>

答案 1 :(得分:1)

我建议file_get_contentscURL获取内容,然后:SimpleXML来解析XML。

$file = $_GET['xml_file'];
$xml = file_get_contents($file.'.xml');

$simpleXml = new SimpleXMLElement($xml);
echo $simpleXml->__toString();

然后使用类似于:my.php?xml_file=file1

答案 2 :(得分:0)

这些应符合您的要求。

$xml = file_get_contents( $_POST['value'] );
$xml = trim( $xml );
header('Content-Type: text/xml');
echo $xml;
exit();

答案 3 :(得分:0)

实际上,您不需要将文件视为XML。但是您应该将它与脚本中的白名单进行匹配,这样人们就无法在您的服务器上请求任何文件。使用内容类型标题,您可以通知浏览器您正在发送XML文件。

$files = [
  'file1' => 'File1.xml',
  'file2' => 'File2.xml',
  'file3' => 'File3.xml'
];

if (isset($_GET['file']) && isset($files[$_GET['file']])) {
  header('Content-Type: text/xml');
  readfile($files[$_GET['file']]);
} else {
  echo 'Invalid file parameter.';
}