如果您知道文件函数filesize($file_path)
的大小
它的大小为A bytes
。
打开文件并输出textarea
中的内容。
无需进行任何更改,请将其保存:
如果您随后打开文件
$save_file = fopen($file_path, 'w');
if ($save_file)
{
// Write new data to a file
$do_write = fwrite ($save_file, stripslashes ($_POST['file']));
if ($do_write)
{
$message = "Success";
}
else
{
$message = "Error";
}
}
else
{
$message = "Error";
}
再次查看文件大小函数filesize($file_path)
,它的大小为B bytes
。
A < B
。
问题:如果文件本身及其内容未被更改,为什么我会得到文件的大小?
答案 0 :(得分:0)
如果文件已有内容,则写入具有'w'
权限的文件将附加到该文件。还要记住,文件名的长度会影响文件使用的字节数。
例如,将file.ext
备份为file.ext.bak
会使file.ext.bak
长3个字节。
答案 1 :(得分:0)
您可能正在向文件中添加空格而不知道它。我会尝试使用git跟踪更改,看看有什么变化。你也可以do a diff
in shell。 a检查文件是否已更改而不检查文件大小的一种好方法是对其进行散列。这是你做的:
$hash = hash_file('md5', '/internal/path/to/file.txt');
// Code to store hash code in database/file.
然后检查它是否已更改执行相同的操作并将其与存储的哈希进行比较。这比filesize更可靠,因为文件中的元数据(名称,扩展名,权限)可以更改文件大小并保持文件内容不变。