我使用此功能编写了一些非常复杂的
PHP应用程序,所以我不确定这里发生了什么.
我目前正在编写一个使用在线历史记录来保存内容的应用程序(通过ajax get).我写的用于将用户的历史存储到文件的API非常简单:
$myFile = "./snhistory/".$_GET["uid"];
$stringData = urldecode($_GET["name"])."\n";
$file = fopen($myFile,"a");
fwrite($file,$stringData);
fclose($file);
这看起来像是将名称中的数据添加到文件末尾的新行的代码,对吧?好吧,这不是PHP看到它的方式.它添加了一个名称,然后当我使用不同的名称运行代码时,它会覆盖第一个,只显示第二个.我尝试过任何我能想到的事情:
file_put_contents($myFile,file_get_contents($myFile).$stringData);
和
file_put_contents($myFile,$stringData,FILE_APPEND);
和
fopen($myFile,"w");
fseek($file,0,SEEK_END);
并且所有都产生相同的行为.这是PHP的错误还是我错过了什么?我觉得如果代码中有问题,我尝试的第二件事就是修复它.但我不确定,这就是为什么我在这里问大家.
我真的很感激可以提供任何帮助.
编辑:根据答案,字符串的问题是它们包含标点符号’和由于某种原因,url编码和转义不起作用.阅读答案的编辑以获得最终答案.