为什么我最多可以将带有 PHP 的字符串保存到文件中 370 个字符?

Why I can save maximum 370 characters into a file from a string with PHP?

我在将一些字符串保存到 .txt 文件时遇到了一些问题。 我的客户端表单上有一个 textarea,它与 summernote 一起使用,我将带有 POST 的表单发送到我的服务器,它收到了,没关系,多长时间文本,我知道,因为我打印了它。但是,当我想将它保存到.txt 文件时,我只能保存369-370 个字符!如果还有更多,则 PHP 忽略它,并且不保存任何内容。我是这样保存的:

fwrite($file, iconv('utf-8','ISO-8859-2',$text."\r\n"));

更新 我用以下命令打开文件:

$file = fopen("file.txt","a") or die ('<h1 class="dangermsg"> <i class="fa fa-exclamation-triangle"></i>Error msg!</h1>');

如何保存更多字符,或者如何解决这个问题?

在处理文本编码时,通过在您的模式中添加 b 以二进制模式打开文件通常更安全,因此在这种情况下使用 ab 而不是 a

根据文档:https://www.php.net/manual/en/function.fopen.php

If you do not specify the 'b' flag when working with binary files, you may experience strange problems with your data, including broken image files and strange problems with \r\n characters.

For portability, it is strongly recommended that you always use the 'b' flag when opening files with fopen().

It is also strongly recommended that you re-write code that uses or relies upon the 't' mode so that it uses the correct line endings and 'b' mode instead.

还使用 PHP_EOL 常数代替 \r\n,这允许交叉 OS 功能。