PHP和JS字符数不同

时间:2014-07-16 10:00:16

标签: javascript php

我正在使用CKEDITOR编写说明,并自动添加摘要。摘要的字符数为300个字符。以下是我写的测试线,命中返回以换行。

This is a line and
a new line doesn't count
the same as php

这导致JS = 59个字符和PHP = 61个字符。以某种方式对新行进行不同的解析。如果摘要超过300个字符,这会导致服务器端错误,因为JS表示300但PHP可能会得到302

CKEDITOR.replace('description');
CKEDITOR.instances['description'].on('key', function() {

        var html = CKEDITOR.instances['description'].getData();
        var value = $('<div/>', { html: html }).text();

        if(value.length > 300){
            var text = value.substring(0, 297);
            $('#summary').html(text + '...');
        }   else {
            $('#summary').html(value);
        }

        char_count(limit);
});

1 个答案:

答案 0 :(得分:1)

这是由于换行符。在Windows上,换行符显示为CRLF(两个字符),而在* nix上,换行符表示为LF(1个字符)。

解决此问题的一种可能方法是从PHP字符串中删除CR字符。它们是不必要的并占用(可忽略的)空间:

$str = str_replace("\r", '', $str);