PHP文件返回XML文件的内容


PHP file to return content of XML File

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

我建议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

参见file_get_contents()

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

这些应该符合您的要求。

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

实际上,您不需要将文件视为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.';
}