我正在尝试使用fopen()将长(> 700.000个字符串)字符串保存到服务器上的文件中。
$file = fopen($filename, 'w+');
fwrite($file, $content);
fclose($file);
echo $content;
但不知何故,这只会在文件已存在时产生正确的文件内容。 如果该文件不存在,则使用“神秘”内容创建,这对我没有任何意义。 (虽然$ content的回显显示正确的值)
文件的前几个字符示例:
当我重新加载脚本时,该文件已经存在,内容写得正确,并像以前一样正确回显。
这也有效,当我自己通过FTP创建文件时(无论之前有什么内容,我都尝试过“Hello”)。只要文件已经存在,一切都很好。
同样非常奇怪的是,如果我插入一个var_dump来查看$ content的值是在特定点,该文件是用正确的内容写的,但echo返回“神秘”字符串。 var_dump似乎总是具有正确的值。
我已经尝试使用几乎所有不同的fopen()模式,如'wb','wb +','wt','wt +','xt'等。 我整夜检查了路径,权限并搜索了谷歌。没有成功。
这让我大吃一惊,因为我看不出有什么问题或我想错过什么。
我希望你能帮助我。
非常感谢!
答案 0 :(得分:0)
也许使用utf8_encode()
$content = utf8_encode("text dsdasasd");
$file = fopen($filename, 'w+');
fwrite($file, $content);
fclose($file);
echo $content;