Автоматически двойная область текста

У меня есть текстовая область, которая позволяет пользователю вводить несколько строк текста. Я хотел бы, чтобы все в текстовом поле автоматически делалось с двойным интервалом. Я использую nl2br для вывода текста и показать интервал.

Допустим, пользователь вводит:

красный
синий
зеленый

Я хотел бы функцию nl2br для вывода

красный

синий

зеленый

Мне также нужно было бы иметь возможность обрабатывать двойные пробелы (то есть, если пользователь уже вводит двойной пробел, я не хочу больше.

Есть идеи, как это сделать? Я бы предпочел сделать это на странице, которая позволяет пользователю вводить текст, если это возможно. Спасибо!

3 ответа

Решение

Использование str_replace() и PHP_EOL:

$str = 'red
blue
green';

$str = str_replace(PHP_EOL, '<br><br>', $str);
echo $str;

РЕДАКТИРОВАТЬ: Использование регулярных выражений:

$str = 'red

blue



green
blue';

$str = preg_replace(array('/(\r?\n)+/', '/\r?\n/'),array(PHP_EOL,'<br><br>'), $str);
echo $str;
$str = str_replace('<br />', '<br /><br />', nl2br($str));

Это сделает <br /> отмечает все окончания строк, а затем удваивает их.

$str = nl2br(str_replace(PHP_EOL, '<br><br>', $str));
echo $str;
Другие вопросы по тегам