使用php创建临时xml文件

时间:2013-02-01 09:40:19

标签: php xml dynamic-data temporary-files

我正在尝试使用php创建一个包含测验问题列表的临时xml文件。随机列表是从php中的数据库生成的,我需要将其保存为可写的临时xml文件,直到测验完成。我一直收到以下错误:

  

警告:simplexml_load_file()[function.simplexml-load-file]:/ tmp / quiz7YRGPo:1:解析器错误:开始标记期望,'<'在第154行的/home/dir/public_html/website.com/quiz/index.php中找不到

     

警告:simplexml_load_file()[function.simplexml-load-file]:第154行/home/dir/public_html/website.com/quiz/index.php中的quiz_data.xml

     

警告:simplexml_load_file()[function.simplexml-load-file]:^在第154行的/home/dir/public_html/website.com/quiz/index.php

这是代码:

// name of XMLPHP file which contains quiz data

$xml_file = 'http://website.com/quiz/dynamic_php_page_generates_xml.php?param=var&param2=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文件,以便每次加载页面时测验都是唯一的?

3 个答案:

答案 0 :(得分:0)

据我所知,您只是将其写入XML文件:

http://website.com/quiz/dynamic_php_page_generates_xml.php?param=var&param2=var2

因为fwrite($fp_tempquiz, $xml_file);  不知道这是您要加载的链接。您需要加载XML数据,而不是链接到它。

请参阅此帖:XML Parser Error Start Tag Expected

答案 1 :(得分:0)

应该是

$xml_file = file_get_contents('http://website.com/quiz/dynamic_php_page_generates_xml.php?param=var&param2=var2');

答案 2 :(得分:0)

$xml_file包含文件的URL,而不是实际的XML内容。您应该首先使用file_get_contents函数阅读它,例如:

$xml_content = file_get_contents($xml_file);
fwrite($fp_tempquiz, $xml_content);