我有一个XML文件,videos.xml
,
<?xml version="1.0" encoding="ISO-8859-1" ?>
<videos>
<video url="videos/Lillebjorn.f4v" desc="Lillebjørn" />
<video url="videos/Storebjorn.f4v" desc="Storebjørn" />
<video url="videos/Pegasus.f4v" desc="Pegasus" />
</videos>
我想知道,如何阅读上面的文件,并添加一个新标签&lt; video url =“”desc =“”/&gt;使用PHP的新视频的URL和描述,然后覆盖当前的videos.xml
文件,以便使用新标记进行更新。
答案 0 :(得分:3)
使用PHP's DOM functions,您可以加载和操作它。
你也可以使用字符串函数手动修改它,DOM在这里可能是一种过度杀伤。
编辑:
假设您已将文件加载到$xml
var:
$pos = strpos($xml, "</videos>");
if ($pos === false) {
$xml = substr($xml,0,$pos)."\t<video url=\"$url\" desc=\"$desc\" />".substr($xml,$pos);
}
读取和写入只需检查
答案 1 :(得分:2)
我强烈反对将XML作为文本处理的做法。不要学习如何做错,从一开始就做好,正确的方法是使用DOM处理工具:
SimpleXMLElement - 顾名思义 - 它很简单,或者 DOMDocument - 但是对于这个任务,SimpleXMLElement就足够了。
从$ videos = simplexml_load_file开始('videos.xml');您可以按照SimpleXMLElement文档中的说明修改视频对象,然后使用file_put_contents('videos.xml',$ videos-&gt; asXML())将其写回XML文件;
别担心,默认情况下,SimpleXMLElement在每个PHP中。
答案 2 :(得分:2)
在FreeBSD 8 *上使用PHP5时,默认情况下不包含SimpleXML(无论如何都通过端口安装)。 以root身份发出以下命令以安装它。 找出它是否已安装的一种确定方法是在其中创建一个包含 phpinfo()的脚本,并在浏览器中搜索 simplexml 。
cd /usr/ports/textproc/php5-simplexml
make install clean
之后可能还需要重启apache。
希望这可以避免某人秃顶。 ; - )