- Nl2br php обратная функция
- Переносы строк и тег BR в PHP
- Замена переносов строк на BR
- Результат:
- Результат:
- Удаление лишних тегов
- Удаление в начале строки
- Результат:
- Удаление в конце строки
- Результат:
- Удаление перед закрывающим тегом
- Результат:
- Результат:
- Результат:
- nl2br
- Parameters
- Return Values
- Examples
- See Also
- User Contributed Notes 17 notes
- Есть функция обратная nl2br?
- Nl2br php обратная функция
- Популярные сообщения
Nl2br php обратная функция
Профиль
Группа: Участник
Сообщений: 234
Регистрация: 22.11.2010
Профиль
Группа: Участник
Сообщений: 234
Регистрация: 22.11.2010
Цитата |
function convert_html_to_bb($description)$description=nl2br($description); |
Это сообщение отредактировал(а) phpsc — 23.1.2011, 00:51
Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск
Профиль
Группа: Участник
Сообщений: 1
Регистрация: 14.11.2012
оно в принципе, правильно, но не всегда. Если задача просто заменить на \n, то верно. Если же вы текст конвертировали с помощью nl2br и Вам надо конвертировать его обратно, то сработает некорректно.
nl2br заменяет «\n» на «
\n», соответственно в результате обратного конвертирования получим \n\n, т.е. +1 лишнюю строку.
в данном случае коректнее будет либо
в зависимости от ситуации
- PHP редакторы собираются и обсуждаются здесь
- Электронные книги по PHP, документацию можно найти здесь
- Интерпретатор PHP, полную документацию можно скачать на PHP.NET
- Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
- Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
- Действия модераторов можно обсудить здесь
- Темы «ищу скрипт», «подскажите скрипт» и т.п. будут переноситься в форум «Web-технологии»
- Темы с именами: «Срочно», «помогите», «не знаю как делать» будут УДАЛЯТЬСЯ
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, [email protected] , skyboy, SamDark, MoLeX, awers.
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
Переносы строк и тег BR в PHP
В PHP за перенос текста отвечают управляющие символы \r (возврат каретки) и \n (перевод строки), причем в разных операционных системах (на которых работает сервер) они применяются в разных комбинациях:
Поэтому в место распространенного \r\n рекомендуется использовать константу PHP_EOL для кроссплатформенности кода.
Замена переносов строк на BR
С помощью функции str_replace() :
$text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin blandit magna eu tempus ullamcorper. Sed porta justo sed nibh elementum condimentum."; $text = str_replace(PHP_EOL, '
', $text); echo $text;
Результат:
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Proin blandit magna eu tempus ullamcorper.
Sed porta justo sed nibh elementum condimentum.
Функция nl2br() добавляет тег
, но оставляет символы переносов строк.
$text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin blandit magna eu tempus ullamcorper. Sed porta justo sed nibh elementum condimentum."; $text = nl2br($text, false); echo $text;
Результат:
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Proin blandit magna eu tempus ullamcorper.
Sed porta justo sed nibh elementum condimentum.
Если через функцию nl2br() пропустить текст несколько раз, то количество
с каждым разом будет увеличиваться и получится следующий результат:
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Proin blandit magna eu tempus ullamcorper.
Sed porta justo sed nibh elementum condimentum.
Чтобы этого избежать нужно перед вызовом nl2br() применять обратную функцию br2nl() :
function br2nl($text) < return preg_replace('//i', '', $text); >
Удаление лишних тегов
Удаление
в начале строки
$text = '
Тег
в начале строки.'; $text = preg_replace('/^()+/i', '', $text); echo $text;
Результат:
Удаление
в конце строки
$text = 'Тег
в конце строки.
'; $text = preg_replace('/()+$/i', '', $text); echo $text;
Результат:
Удаление
перед закрывающим тегом
$text = 'Лишний
в конце параграфа. '; $text = preg_replace('/()+([\s+])?()$/i', '$3', $text); echo $text;
Результат:
Еще момент, обычно в WYSIWYG редакторах пустая строка выполняется элементом
, следующий код удаляет данные переносы в конце текста.
$text = ' Пустые строки в конце текста.
'; $text = preg_replace('/( [\s+]?)+$/i', '', $text); $text = trim($text); echo $text;
Результат:
Пустые строки в конце текста.
Удаление повторяющихся
$text = 'Текст
с
множеством
переносовстрок.'; $text = preg_replace('/()/i', '
', $text); echo $text;
Результат:
Текст
с
множеством
переносов
строк.
nl2br
Returns string with
or
inserted before all newlines ( \r\n , \n\r , \n and \r ).
Parameters
Whether to use XHTML compatible line breaks or not.
Return Values
Returns the altered string.
Examples
Example #1 Using nl2br()
The above example will output:
Example #2 Generating valid HTML markup using the use_xhtml parameter
The above example will output:
Welcome
This is my HTML document
Example #3 Various newline separators
The above example will output:
See Also
- htmlspecialchars() — Convert special characters to HTML entities
- htmlentities() — Convert all applicable characters to HTML entities
- wordwrap() — Wraps a string to a given number of characters
- str_replace() — Replace all occurrences of the search string with the replacement string
User Contributed Notes 17 notes
It’s important to remember that this function does NOT replace newlines with
tags. Rather, it inserts a
tag before each newline, but it still preserves the newlines themselves! This caused problems for me regarding a function I was writing — I forgot the newlines were still being preserved.
If you don’t want newlines, do:
to replace all linebreaks to
the best solution (IMO) is:
function nl2br2 ( $string ) <
$string = str_replace (array( «\r\n» , «\r» , «\n» ), «
» , $string );
return $string ;
>
?>
because each OS have different ASCII chars for linebreak:
windows = \r\n
unix = \n
mac = \r
/**
* Convert BR tags to nl
*
* @param string The string to convert
* @return string The converted string
*/
function br2nl ( $string )
return preg_replace ( ‘/\/i’ , «\n» , $string );
>
?>
Enjoy
Starting from PHP 4.3.10 and PHP 5.0.2, this should be the most correct way to replace
and
tags with newlines and carriage returns.
/**
* Convert BR tags to newlines and carriage returns.
*
* @param string The string to convert
* @return string The converted string
*/
function br2nl ( $string )
return preg_replace ( ‘/\/i’ , PHP_EOL , $string );
>
?>
(Please note this is a minor edit of this function: http://php.net/nl2br#86678 )
You might also want to be «platform specific», and therefore this function might be of some help:
/**
* Convert BR tags to newlines and carriage returns.
*
* @param string The string to convert
* @param string The string to use as line separator
* @return string The converted string
*/
function br2nl ( $string , $separator = PHP_EOL )
$separator = in_array ( $separator , array( «\n» , «\r» , «\r\n» , «\n\r» , chr ( 30 ), chr ( 155 ), PHP_EOL )) ? $separator : PHP_EOL ; // Checks if provided $separator is valid.
return preg_replace ( ‘/\/i’ , $separator , $string );
>
?>
double quotes !== single quotes
Seeing all these suggestions on a br2nl function, I can also see that neither would work with a sloppy written html line break.. Users can’t be trusted to write good code, we know that, and mixing case isn’t too uncommon.
I think this little snippet would do most tricks, both XHTML style and HTML, even mixed case like and even
or
.
This is example with «\R» regex token which matches any unicode newline character.
«u» flag treate strings as UTF-16. Which is optional, depending on your use case.
public function nl2br ( $string )
return preg_replace ( ‘/\R/u’ , ‘
‘ , $string );
>
?>
NOTE:
preg_replace versions are much slower than using str_replace version or built-in nl2br.
Check out pcre.backtrack_limit php.ini setting for information about PCRE limit. It’s good to know.
function nl2br_str ( $string ) return str_replace ([ «\r\n» , «\r» , «\n» ], ‘
‘ , $string );
>
function nl2br_preg_R ( $string )
return preg_replace ( ‘/\R/u’ , ‘
‘ , $string );
>
function nl2br_preg_rnnr ( $string )
return preg_replace ( ‘/(\r\n|\n|\r)/’ , ‘
‘ , $string );
>
?>
# nl2br
## Time: 0.02895712852478 s
# nl2br_str
## Time: 0.027923107147217 s
# nl2br_preg_R
## Time: 0.13350105285645 s
# nl2br_preg_rnnr
## Time: 0.14213299751282 s
Есть функция обратная nl2br?
есть ли стандартная функция, обратная array_count_values?
Здравствуйте. Мне нужна функция, чтобы из массива Array ( => 1 => 2 .
nl2br
Если обрабатываем строку, всё работает как надо, но мне нужно обработать строку после функции.
Обратная функция ValToBinaryArr
Всем привет. Есть вот такая функция: function ValToBinaryArr($Val, $Len) < .
Есть ли функция обратная List?
В postgresql есть такая функция regexp_split_to_table(строка text, шаблон text ) — Разбивает.
/** * Convert BR tags to nl * * @param string The string to convert * @return string The converted string */ function br2nl($string) { return preg_replace('/\/i', "\n", $string); }
Сообщение от khrustal
$br = 'text
text
text
text
!'; $nl = preg_replace('##i', "\n", $br);
Lazy_Den, Dolphin, спасибо за быструю реакцию!
А как правильнее писать «\n» or «\r\n» or maybe «\n\r»?
Нужно чтобы после изменений текст правильно показывался в .
И еще одно, кажется nl2br не очень корректно работает, бреки умножаются после каждого показа в или последующего send-a. Это известный эффект?
Если написать собственнуэ функцию
nl2brmy , то как составить правильный шаблон для preg_replace ?
Сообщение от khrustal
Сообщение от khrustal
function nl2brmy($str){ return str_replace(array("\r\n", "\r", "\n"), "
", $str); ; }
Nl2br php обратная функция
Сообщения
Сообщения
Комментарии
Комментарии
Популярные сообщения
bash скрипт использующий API ВК без авторизации: #!/bin/bash sys_version=»0.3b» sys_method=’audio.search’ sys_tem.
jQuery: Обнаружение изменения ориентации экрана $ ( window ). bind ( ‘orientationchange’ , function ( event ) < s.
Навигация по страницам для сайта на PHP Функция постраничной навигации:
Эмуляция CURLOPT_FOLLOWLOCATION когда появляется ошибка CURLOPT_FOLLOWLOCATION cannot be activated when in safe_mode or an open_basedir i.
AutoLogin to website from panel of bookmarks on Javascript: Автоматическая авторизация на сайте через яваскрипт код из панели закладок. .
Запросы на выборку из таблицы Самыми распространенными и простыми запросами SQL в базе данных являются запросы на выборку. Отличают их.
At the start of working with MySQLi on PHP we must create connection: $mysqli = new mysqli(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME) or die(&.
You can see Macros for Excel on VBA for copy only values. Hidden rows will be copied too, because here we are not control it, but You can.
Брут (подбор) пароля по md5 php скриптом // Устанавливаем неограниченное время выполнения скрипта set_time_limit(0); // Читаем .