Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
EDIsaev
4 / 4 / 2
Регистрация: 27.03.2012
Сообщений: 136
#1

nl2br

17.12.2013, 16:23. Просмотров 366. Ответов 5
Метки нет (Все метки)

Если обрабатываем строку, всё работает как надо, но мне нужно обработать строку после функции json_encode и тут nl2br не отрабатывает, как хотелось бы
надо его прогонять отдельно по всей структуре или как-то сначала привести результат к строке?
PHP
1
2
3
$res=json_encode($resultArr);
$res=nl2br($res);
echo $res;
вот в таком виде символы перевода ( в моём случае \n ) так и остаются, а не переделываются в </ br> внутри структуры json
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2013, 16:23
Ответы с готовыми решениями:

Есть функция обратная nl2br?
Есть функция обратная nl2br? Т.е. вставляющая символы конца строки вместо &lt;br/&gt;?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
kester
216 / 157 / 30
Регистрация: 11.05.2010
Сообщений: 615
17.12.2013, 16:58 #2
если не работает так, попробуй через str_replace
1
Rol1k
85 / 85 / 31
Регистрация: 14.06.2013
Сообщений: 207
17.12.2013, 17:21 #3
PHP
1
2
3
4
5
6
<?php
$resultArr = array("1st line\n","2nd line\n","3rd line\n","4th line\n");
$resultArr = array_map(function($value){return nl2br($value);},$resultArr);
echo json_encode($resultArr);
//["1st line<br \/>\n","2nd line<br \/>\n","3rd line<br \/>\n","4th line<br \/>\n"]
?>
Добавлено через 6 минут
Цитата Сообщение от EDIsaev Посмотреть сообщение
символы перевода ( в моём случае \n ) так и остаются, а не переделываются в </ br>
nl2br() - возвращает строку, в которой перед каждым переводом строки (\r\n, \n\r, \n и \r) вставлен '<br />' или '<br>'.
1
EDIsaev
4 / 4 / 2
Регистрация: 27.03.2012
Сообщений: 136
18.12.2013, 11:27  [ТС] #4
Rol1k, как компактно!
Маленькое НО только... $resultArr - многомерный массив. Вот сижу и думаю как бы это элегантно поправить, не наляпав лишнего?
он вот так создавался
$resultArr["menu"]=$menuArr;
$resultArr["level1"]=$level1Arr;
$resultArr["level2"]=$level2Arr;
$resultArr["level3"]=$level3Arr;
в результате nl2br() на вход вместо строки получает массив
0
Camaro396
38 / 38 / 13
Регистрация: 22.07.2013
Сообщений: 197
18.12.2013, 11:44 #5
PHP
1
2
3
4
5
6
array_walk_recursive(
    $resultArr,
    function(&$v) {
       $v = nl2br($v);
    }
)
1
EDIsaev
4 / 4 / 2
Регистрация: 27.03.2012
Сообщений: 136
18.12.2013, 12:55  [ТС] #6
Camaro396, оно, спс
не знал ни о array_map() ни о array_walk_recursive()
как всё удобно оказывается
0
18.12.2013, 12:55
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru