我正在使用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);
});
答案 0 :(得分:1)
这是由于换行符。在Windows上,换行符显示为CRLF(两个字符),而在* nix上,换行符表示为LF(1个字符)。
解决此问题的一种可能方法是从PHP字符串中删除CR字符。它们是不必要的并占用(可忽略的)空间:
$str = str_replace("\r", '', $str);