【发布时间】:2012-08-13 05:32:55
【问题描述】:
<?php
$modcontent = file_get_contents('hello.xml');
preg_match("/<Content(.*?)>(.+?)<\/Content/s", $modcontent, $xmlmatches);
$search = array('<![CDATA[',']]>');
$replace = array('','');
$thenewone = str_replace($search, $replace, $xmlmatches[2]);
fopen('hello.xml');
fwrite($thenewone);
fclose('hello.xml');
?>
嗨,从上面的代码开始(不起作用),你能不能让它修改 hello.xml 文件以只保留 之间的内容,就像在 preg_match 中一样? hello.xml 在这里http://www.google.com/ig/modules/hello.xml。 由于我的PHP和我的英语知识相当低,我会用不同的词再次解释,希望你能理解我的意思。我想要一个可以打开 hello.xml 文件、读取 Content 标签之间的内容、写入该内容并替换文件中其他所有内容并保存 hello.xml 文件的 PHP 脚本。因此,在所有这些操作之后,.xml 应该只包含 Hello, world!。 非常感谢!
【问题讨论】:
-
这是一个可怕的替代品!很容易创建无效的 XML .. 而且,问题应该解释“不起作用”是什么意思 ..
-
好吧,不起作用意味着我的代码没有对那个 hello.xml 文件做任何事情(也许你可以下载 hello.xml 文件并测试它,如果不是太麻烦的话)。另外,我不关心无效的 XML,因为在脚本对 XML 文件进行修改后,其内容将不再是 xml ;)
-
Daniel,我建议您最好阅读有关 SimpleXML 的内容。这会对你有很大帮助。了解 PHP 内置库总是比每次都重新发明那些简单(或不那么)的东西要好。
-
感谢您的建议,但我认为SimpleXML只会显示一个XML文件,不会做我想做的事;我需要修改那个 xml 文件。此外,我现在开始学习 PHP 有点老了 - 只有上面的错误代码花了我半天时间。我真的没有时间,所以我在这里寻求帮助:(
标签: php regex fopen file-get-contents fwrite