Php заменить строки на "невидимые символы" (\ n) - PullRequest
1 голос
/ 18 октября 2011

Я получаю из БД такой текст.

{br}{/br}hello!{br}{/br}

этот текст выводится внутри элемента textarea.

мне нужно заменить все '{br}{/br}' невидимым символом '\n', который должен установить пробел в самой текстовой области. в надежде:)

я пытался сделать это.

$text = str_replace('{br}','\n',$text);
        $text = str_replace('{/br}','\n',$text);

затем выведите $text в текстовой области, но символы \n видны: |

Ответы [ 3 ]

2 голосов
/ 18 октября 2011

Используйте str_replace с двойными кавычками "\n", чтобы его интерпретировали как перевод строки; '\n' с одинарными кавычками - это буквальный обратный слеш, за которым следует n.

$text = str_replace('{br}{/br}', "\n", $text);

Я не уверен, почему вы звоните str_replace один раз для {br} и один раз для {/br}. Вы хотите, чтобы каждая пара {br}{/br} была заменена двумя новыми строками? Если это так, вы можете сделать это проще с помощью одного вызова:

$text = str_replace('{br}{/br}', "\n\n", $text);
1 голос
/ 18 октября 2011

Попробуйте использовать двойные кавычки

$text = str_replace('{/br}', "\n", $text);
1 голос
/ 18 октября 2011

Вам нужно поставить \n в двойных кавычках, а не в одинарных.Переменные и escape-последовательности не интерполируются в одинарных кавычках.Кроме того, вы, вероятно, захотите заменить всю строку {br}{/br} одной новой строкой - тем, что вы сделали, вы замените ее двумя.

Итак:

$text = str_replace('{br}{/br}',"\n",$text);

Возможното, что ты хочешь.Вероятно, стоит прочитать это , чтобы вы знали, что вы можете / не можете делать со строками в PHP.

...