在PHP中清理数据后,如何停止CKEditor自动生成\r\n字符? [英] How to stop CKEditor producing \r\n characters automatically when data is sanitized in PHP?
问题描述
我对来自CKEditor textarea字段的数据有疑问。我正在使用 CKEditor 4.4.1
。每当我尝试提交CKEditor的内容时,它都会一次又一次生成字符 \r\n
。但是,只有在我清理传入数据时才会发生这种情况。这是我的函数,用于清理传入的内容-
//过滤用户输入
公共函数filter_data($ input)
{
//如果魔术引号位于
if(get_magic_quotes_gpc())
{
$ input = stripslashes($ input);
}
$ sanitized_data = mysqli_real_escape_string($ this-> con,trim($ input));
返回$ sanitized_data;
}
这就是我调用上述函数的方式-
$ post_content = $ users_obj-> filter_data($ _ POST ['txtpostcontent']);
然后我在CKEditor中得到以下输出-
请尽量避免抽烟,不要因抽搐而锻炼。
\
\r $ n
Lorem ipsum多洛尔·阿梅特(Dolor sit amet),秘书,精英,塞德(sam)diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat。请尽量避免抽烟,不要因抽搐而锻炼。
\r\n\r\n
但是当我不调用上述函数时,一切都很好,并且内容中没有像 \r\n
这样的字符。
所以我想知道如何通过保持清理功能开启来阻止这些字符自动生成?有什么办法可以消毒内容,也不能弄这些字符?谢谢。
还有一点有用:
$ text = str_ireplace(array( \r, \n,'\r','\n'),'',$ text);
I am having a problem regarding data coming from CKEditor textarea field. I am using CKEditor 4.4.1
. Whenever I try to submit the content of CKEditor it generates characters \r\n
again and again. But it happening only when I am sanitizing my incoming data. Here is my function which sanitizes the incoming content -
// filter user input
public function filter_data($input)
{
// if magic quotes are on
if(get_magic_quotes_gpc())
{
$input = stripslashes($input);
}
$sanitized_data = mysqli_real_escape_string($this->con, trim($input));
return $sanitized_data;
}
And this is how I am calling the above function -
$post_content = $users_obj->filter_data($_POST['txtpostcontent']);
And then I am getting following output in CKEditor -
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.
\r\n\r\n
\r\n\r\n
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.
\r\n\r\n
But when I don't call the above function then everything is fine and there is no characters like \r\n
in my content.
So I want to know how can I stop these characters from being produced automatically by keeping my sanitizing function on? Is there any way I can sanitized my content and also don't get these characters as well? Thanks.
one more thing is helpful :
$text = str_ireplace(array("\r","\n",'\r','\n'),'', $text);
这篇关于在PHP中清理数据后,如何停止CKEditor自动生成\r\n字符?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!