使用 php 创建一个临时 xml 文件
Posted
技术标签:
【中文标题】使用 php 创建一个临时 xml 文件【英文标题】:Creating a temporary xml file with php 【发布时间】:2013-01-16 14:13:35 【问题描述】:我正在尝试使用 php 创建一个包含测验问题列表的临时 xml 文件。随机列表是从 php 中的数据库生成的,我需要将其保存为可写的临时 xml 文件,直到测验完成。我不断收到以下错误:
警告:simplexml_load_file() [function.simplexml-load-file]:/tmp/quiz7YRGPo:1:解析器错误:需要开始标记,在 /home/dir/public_html/website.com/quiz 中找不到“
警告:simplexml_load_file() [function.simplexml-load-file]: quiz_data.xml in /home/dir/public_html/website.com/quiz/index.php 位于第 154 行
警告:simplexml_load_file() [function.simplexml-load-file]: ^ in /home/dir/public_html/website.com/quiz/index.php 第 154 行
这是代码:
// name of XMLPHP file which contains quiz data
$xml_file = 'http://website.com/quiz/dynamic_php_page_generates_xml.php?param=var¶m2=var2';
// create randomXML file
$tempquiz = tempnam('/tmp','quiz');
$fp_tempquiz = fopen($tempquiz, "w");
fwrite($fp_tempquiz, $xml_file);
//CLOSE temp file
fclose($fp_tempquiz);
// create new SimpleXML object from XML file
$quiz = simplexml_load_file($tempquiz);
如何使用 php 创建临时 xml 文件,以便每次加载页面时测验都是唯一的?
【问题讨论】:
【参考方案1】:$xml_file
包含文件的 URL,而不是实际的 XML 内容。您应该先阅读它,使用file_get_contents
函数,例如:
$xml_content = file_get_contents($xml_file);
fwrite($fp_tempquiz, $xml_content);
【讨论】:
【参考方案2】:据我所知,您只是将其写入您的 XML 文件:
http://website.com/quiz/dynamic_php_page_generates_xml.php?param=var¶m2=var2
因为fwrite($fp_tempquiz, $xml_file);
不知道这是您要加载的链接。您需要加载 XML 数据,而不是指向它的链接。
请参考此帖:XML Parser Error Start Tag Expected
【讨论】:
【参考方案3】:应该是
$xml_file = file_get_contents('http://website.com/quiz/dynamic_php_page_generates_xml.php?param=var¶m2=var2');
【讨论】:
以上是关于使用 php 创建一个临时 xml 文件的主要内容,如果未能解决你的问题,请参考以下文章
ASIHttpRequest-移动到实时PHP服务器后未创建临时文件