在PHP中清理数据后,如何停止CKEditor自动生成\r\n字符? [英] How to stop CKEditor producing \r\n characters automatically when data is sanitized in PHP?

查看:99
本文介绍了在PHP中清理数据后,如何停止CKEditor自动生成\r\n字符?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对来自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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆