我在阅读通过PHP在我的服务器上托管的XML文件的内容时遇到了问题。 在我的托管目录中,我有1个PHP文件&其他3个是XML文件。 XML文件已经填满。他们有文本数据。我需要的是,如果我将Value1传递给我的php文件,它应该读取File1.xml&按原样返回其内容。如果我将Value2传递给我的php文件,它应该读取File2.xml&按原样返回其内容。我试图在Stackoverflow上搜索,但没有找到与此特定问题相关的任何内容。
答案 0 :(得分:1)
{{3}}
<?php
echo file_get_contents($_POST["value"]);
?>
答案 1 :(得分:1)
我建议file_get_contents
或cURL
获取内容,然后: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.';
}