0

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

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

警告:simplexml_load_file() [function.simplexml-load-file]: quiz_data.xml 在 /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&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 文件,以便每次加载页面时测验都是唯一的?

4

3 回答 3

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

于 2013-02-01T09:55:46.177 回答
0

它应该是

$xml_file = file_get_contents('http://website.com/quiz/dynamic_php_page_generates_xml.php?param=var&param2=var2');
于 2013-02-01T09:57:52.023 回答
0

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

$xml_content = file_get_contents($xml_file);
fwrite($fp_tempquiz, $xml_content);
于 2013-02-01T09:58:39.580 回答