【问题标题】:Remove all spaces, line breaks, and html breaks from a string generated by ckeditor从 ckeditor 生成的字符串中删除所有空格、换行符和 html 换行符
【发布时间】:2012-09-21 21:38:00
【问题描述】:

我有一堆我目前正在使用 ckeditor 的文本区域,并将值存储在数据库中。当我取回这些值时,我希望能够判断是否没有任何内容输入到特定的文本区域中。然而问题是 ckeditor 喜欢将自己的标记和其他内容放入字符串中,即使该 textarea 没有被触及。

所以,我需要能够从字符串的开头和结尾删除所有空格、换行符和 html 中断(因为我们不想删除好的数据)。这是我目前正在尝试修剪的字符串(从数组中转储的 var_dumped),

array(3) {
  ["remediation"]=>
  string(26) "


    But not the third
"
  ["effective"]=>
  string(28) "


    Second one is blank
"
  ["celebrate"]=>
  string(6) "
"
}

我已经尝试过以下方法:trim、this preg replace,以及该 preg_replace 的许多变体。

【问题讨论】:

    标签: php regex ckeditor


    【解决方案1】:

    您可以只使用 trimstrip_tagsarray_map

    $array = array("remediation" => "
    
    
        <p> But not the third </p>
    ","effective" => "
    
    
        Second one is blank
    ","celebrate" => "
    ");
    
    $array = array_map("strip_tags", $array);
    $array = array_map("trim", $array);
    var_dump($array);
    

    输出

    array
      'remediation' => string 'But not the third' (length=17)
      'effective' => string 'Second one is blank' (length=19)
      'celebrate' => string '' (length=0)
    

    【讨论】:

    • 这并没有改变任何东西,我假设这是因为字符串中的 html。第一个和第二个元素周围有 p 标签,这很好,但最后一个元素中有一个
      ,它也需要消失。
    • 是的,我是个白痴,我 5 分钟前才想过这样做。不知道为什么在过去 2 小时内没有想到该选项。我想我今天一直盯着屏幕看很久了,哈哈。谢谢你的帮助。
    • 在我的情况下,我实际上将使用一个临时变量,剥离标签并单独检查长度,而不是在整个数组上进行,但它的类型相同。我实际上并不想删除标记。只需检查一下即可。
    猜你喜欢
    • 2011-08-27
    • 2012-10-29
    • 2013-03-07
    • 1970-01-01
    • 1970-01-01
    • 2013-05-10
    • 2012-06-04
    • 2016-11-13
    相关资源
    最近更新 更多