2012-08-29 73 views
0

这是协议:内容相同的文件

1)我生成一个文本文件在线与PHP包含字母数字字符。然后我下载它并记下它的大小(从属性菜单)。

2)我用Notepad ++打开文本文件并剪切新文本文件中的所有内容,然后保存新文件(具有相同名称)。

3)令我惊讶的是,即使认为两个文件都有完全相同的文本内容,它们的大小也不一样!

- TEST 1 -

下载的文件:1529柯

新副本文件:1594柯

- TEST 2 -

下载文件:52 Ko

新副本文件:54柯


还等什么?为什么我在这里发布这个?因为相关文件可供我的用户在我的网站上下载,并且可以用它来替换游戏保存中的文件。然而,游戏通过拒绝它来反应新文件,而复制的文件(使用上述协议)可以正常工作。

我在两个文件中看到的唯一区别是它们的大小(如上所示略有差别) - 但内容和名称相同。任何想法为什么有这种尺寸差异?

+5

你是否已经完成了两个文件的二进制比较,以确切地看到有什么不同?仅仅因为内容与你相同,并不意味着它们实际上是相同的。 –

+2

听起来像文本编码问题。 –

+1

尝试一个标题:'header('Content-Transfer-Encoding:binary');' –

回答

1

这很可能是在unix(1字节)和windows(2字节)之间转换的换行符。

正如评论中提到的那样,它也可能是编码,但NotePad ++在编码方面相当不错。这也不太可能解释这种差异。

您需要将“\ r \ n”转换为“\ n”以获得较小的文件大小。下面是我刚刚发现的一个页面,其中有几个选项:http://darklaunch.com/2009/05/06/php-normalize-newlines-line-endings-crlf-cr-lf-unix-windows-mac

另一个需要注意的地方是一个不太明显的尾随“换行符”。再次,在进行比较之前将其去掉。

+0

上帝保佑你。当我使用PHP生成我的文件以获得更大的文件大小时,我必须将“\ n”更改为“\ r \ n”。 –

0

您的客户端和服务器是不同的平台吗?说linux和windows?在这种情况下,新行字符的存储方式有所不同。这可能会导致大小差异。 另一个原因可能是使用字符编码,但它不太可能。

相关问题