为什么我可以用PHP将最多370个字符从字符串保存到文件中?
我在将一些字符串保存到为什么我可以用PHP将最多370个字符从字符串保存到文件中?,php,string,file,summernote,php-7.2,Php,String,File,Summernote,Php 7.2,我在将一些字符串保存到.txt文件时遇到一些问题。 我在客户端表单上有一个textarea,它与一起使用,我将表单与POST一起发送到我的服务器,服务器收到了它,我知道文本有多长并不重要,因为我打印了它。但是,当我想将其保存到.txt文件时,我只能保存369-370个字符!如果存在的内容超过PHP则忽略它,并且不保存任何内容。我就是这样保存它的: fwrite($file, iconv('utf-8','ISO-8859-2',$text."\r\n")); 更新 我使用以下命令打开文件: $
.txt
文件时遇到一些问题。
我在客户端表单上有一个textarea
,它与一起使用,我将表单与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>');
$file=fopen(“file.txt”,“a”)或die('Error msg!');
如何保存更多字符,或者如何解决此问题?在处理文本编码时,通常通过将
b
添加到您的模式以二进制模式打开文件更安全,因此在这种情况下,使用ab
而不是a
根据文件:
如果在处理二进制文件时未指定“b”标志,则数据可能会遇到奇怪的问题,包括损坏的图像文件和\r\n字符的奇怪问题
为了便于移植,强烈建议您在使用fopen()打开文件时始终使用“b”标志
强烈建议您重新编写使用或依赖“t”模式的代码,以便它使用正确的行尾和“b”模式
也可以使用
PHP\u EOL
常量而不是\r\n
,这样可以实现跨操作系统的功能。您是在Windows还是Linux上运行PHP,您使用的fopen
是什么模式?@lufc I使用append
打开它,根据托管提供程序信息,我正在通过UNIX套接字使用Localhost
。您确定iconv()
没有因为非法字符而截断文件吗?您是否尝试过在不使用iconv()的情况下将$text
写入文件?您还应该使用PHP\u EOL
而不是\r\n
@lufc,而不使用iconv()
我遇到了一些奇怪的编码问题,但仅此而已,大小问题仍然存在。\r\n
将更改,感谢您的警告。请尝试使用模式ab
进行二进制追加。