我有一个使用fopen()
或file_get_contents()
通过FTP获取的XML文件。我需要将其上传到带有$dom->loadXML()
的DOM文档,但这只接受以下格式的XML字符串:
<?php
$string = <<<XML
<?xml version='1.0'?>
<document>
<title>/title>
<from></from>
<to></to>
<body>
</body>
</document>
XML;
?>
如何将我获取的ftp文件转换为此类型的字符串?
答案 0 :(得分:0)
将文件保存在特定文件夹中,然后使用simplexml_load_string。检查你的XML,看起来它有问题
$file_url = ''; //this is your file URL
//if you are getting the file from the internet, it is best to use cURL to fetch the data, you can add additional code to control it. Otherwise if it is inside your project just use file_get_contents.
$xml_string = file_get_contents($file_url);
$xml = simplexml_load_string($xml_string);
根据您的评论更新答案
你需要考虑:
如果您的服务器具有高且无限的带宽,那么9MB应该不是问题,但是如果它可以支持高速上传,则需要考虑XML所在的服务器,否则您的页面可能加载速度非常慢。
如果您一直在访问所有页面,最好下载它,但请注意文件中的数据是否会不时变化。
如果数据不经常更改,最好下载并将其另存为项目中的文件。否则,你可能想创建一个php脚本来下载文件,创建一个shell脚本来运行php脚本,然后创建一个CRON JOB来获取更新的文件,这是非常先进的。
我记得当我开发我之前项目的一部分时,因为我需要在交易页面呈现时从XML(448KB)加载所有机场,并且因为世界各地的机场列表太长,我下载了机场列表,并将其保存在我们的服务器中。我没有制作任何额外的PHP脚本和shell脚本来检查数据内容,因为每当用户无法找到相应的机场时,他们就可以报告它,开发人员可以手动更新它,因为机场列表每天都不会更改
根据您的评论进行更新
如果是这种情况我会推荐什么:
您可能想要澄清您的问题并列出它们。