我发现了一些其他的教程(我认为它很难,因为我不知道任何关于PHP的东西)并且与我正在使用的php代码相比,它似乎非常短。我不知道代码是做什么的,所以目前我不确定问题是来自php还是我的AS3。
<?php
if (isset($GLOBALS["HTTP_RAW_POST_DATA"])){
$xml = $GLOBALS["HTTP_RAW_POST_DATA"];
$file = fopen("wish.xml","wb");
fwrite($file, $xml);
fclose($file);
}
?>
及以下是我正确的XML格式:
<WISHES>
<WISH>
<NAME>Test</NAME>
<EMAIL>test@tes.com</EMAIL>
<DATENTIME>2/3/10</DATENTIME>
<MESSAGE>Dummy Message</MESSAGE>
</WISH>
<WISH>
<NAME>Test</NAME>
<EMAIL>test@tes.com</EMAIL>
<DATENTIME>2/3/10</DATENTIME>
<MESSAGE>Dummy Message</MESSAGE>
</WISH>
</WISHES>
所以任何人都可以解释这个PHP代码的作用?因为它用以下代码替换我的XML:
<WISH>
<NAME>Test</NAME>
<EMAIL>test@tes.com</EMAIL>
<DATENTIME>2/3/10</DATENTIME>
<MESSAGE>Dummy Message</MESSAGE>
</WISH>
答案 0 :(得分:2)
代码获取$ GLOBALS [“HTTP_RAW_POST_DATA”]的值并将其写入wish.xml,删除以前的文件内容。
答案 1 :(得分:0)
在fopen中尝试“ab”而不是“wb”。
wb:开放写作。 'b'表示二进制数据。
ab:打开追加。 'b'表示二进制数据。
答案 2 :(得分:0)
正如Michael和Nifle所说,代码在存储新条目时会删除xml文件中的当前条目。为了克服这个问题并按照你的预期做,用这种方式修改代码:
<?php
if (isset($GLOBALS["HTTP_RAW_POST_DATA"])){
$xml = $GLOBALS["HTTP_RAW_POST_DATA"];
// read in the old ontent of the file
$oldXML = join('', file('wish.xml'));
// replace the old file ending with the new entry and a new file ending
$newXML = str_replace('</WISHES>', $xml."\n</WISHES>");
// finally store the new data to the file
$file = fopen("wish.xml","w");
fwrite($file, $newXML);
fclose($file);
}
?>