CKEditor удаляет лишние пробелы

#php #ckeditor

#php #ckeditor

Вопрос:

Я использую CKEditor для текстового редактора, и он не удаляет лишние пробелы.

Я пытался

 $foo = strip_tags($foo);
$foo = preg_replace('/s /',' ',$foo);
  

Я не знаю никакого другого способа удалить пробелы отсюда. Есть идеи?

Спасибо

Комментарии:

1. Спасибо, я знаю, что это устарело, но вы только что спасли меня от того, чтобы выдергивать остатки моих волос. С CKEditor так сложно работать…

Ответ №1:

попробуйте эти:

 $foo = preg_replace('/s{2,}/', ' ', $foo);
  

или

 $foo = preg_replace('/( ) /', ' ', $foo);
  

или этот тоже удаляет разрывы строк

 $foo = trim(preg_replace('/[stnrs] /', ' ', $foo))
  

Обновить

Попробуйте этот:

 $foo = trim(preg_replace('/(amp;nbsp;) |sKs /','',$foo));
  

Комментарии:

1. Спасибо, Ганеш, я перепробовал все эти коды, но это не сработало. Я действительно не понимаю, почему это не работает. Исходный код буквально <p> </p> и когда я удаляю эти буквы p, остается пробел. Я также пробовал preg_replace(‘/<p>s </p >/’, ‘ ‘, $ foo); безрезультатно.

2. @Новичок попробуйте это, $foo = trim(preg_replace('/(amp;nbsp;) |sKs /','',$foo));

3. Спасибо, но этот также не удалил пробел. Я не думаю, что это зарегистрировано как «amp;nbsp;». В базе данных mysql это выглядит как обычный пробел.

4. @Новичок измените текст на utf-8 и попробуйте код about preg_replace!

Ответ №2:

Решаемая Если кому-то интересно, я решил это, очистив их перед тем, как они попали в базу данных.

   $cpbody = trim($_POST['cbody']);

  $cpbody = preg_replace("/<p>amp;nbsp;</p>/", "", $cpbody);
  $cpbody = preg_replace("/amp;nbsp; /", " ", $cpbody);
  $cpbody = preg_replace("/s /", " ", $cpbody);

  $cpbody = htmlentities($cpbody);