Чтобы сохранить несколько разрывов строк, я делаю это:
$tempCONTENT = mysqli_real_escape_string($con, $_POST['promotion_content']);
$tempCONTENT = str_ireplace(array("\r\n","\r","\n",'\r','\n'),'<br />', $tempCONTENT);
$previewFORMATTED = str_ireplace(array('<br /><br />'),'<br />', $tempCONTENT);
echo $previewFORMATTED;
Используется для обработки поля формы текстовой области.Он сохраняет количество разрывов строк, введенных пользователем, изменяя их с \ r \ n на [br /]
. Я использую это для отображения ввода, чтобы пользователь мог проверить его, прежде чем я добавлю его вбаза данных.Использование двух кнопок отправки, одной для проверки, а другой для отправки, не позволяет этого сделать.Он просто добавляет данные, используя mysqli_real_escape_string
Затем я использую str_ireplace, чтобы превратить правильное число [br /] в \ r \ n, чтобы я мог отобразить результат обратно в текстовую область, чтобы сделать егоих легко редактировать.
Итак, мой окончательный код выглядит следующим образом:
$tempCONTENT = mysqli_real_escape_string($con, $_POST['promotion_content']);
$tempCONTENT = str_ireplace(array("\r\n","\r","\n",'\r','\n'),'<br />', $tempCONTENT);
$previewFORMATTED = str_ireplace(array('<br /><br />'),'<br />', $tempCONTENT);
echo $previewFORMATTED;
$formOUTPUT = str_ireplace(array('<br />'),"\r\n", $previewFORMATTED);
Я протестировал это на Safari и Chrome, и он отлично работает.Я не тестировал IE, но в IE ничего не работает!
Но я нашел еще одну проблему.Если пользователь вводит HTML следующим образом:
<h1>heading</h1><p>some text</p>
это нормально, но если они делают следующее (что более вероятно)
<h1>heading</h1>
<p>some text</p>
Тогда я получаю огромное пространство между заголовкоми параграф.
Я пытался исправить это с помощью этого кода:
$tempCONTENT = str_ireplace(array(">\r\n<",">\r<",">\n<",'>\r<','>\n<'),'><', $tempCONTENT);
, но это не сработало :( Я все еще получаю огромный пробел, так как он добавляет дополнительный [br /] между тегами h1 и p.
Пока я просто скажу им не добавлять разрыв строки между тегами html, и результат должен быть хорошим:)
Надеюсь, кто-нибудьнашел это полезным.