#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);