Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Тексты > Заменить символ "\n" на "\\n"


Автор: Wolf1994 11.4.2006, 04:19
Никак не получается нормально отобразить символы "\n". При: str_replace ('\n', '\\n', $str) - ничего не получается, а при str_replace ("\n", '\\n', $str) - заменяются также управляющие символы переноса строк. Мне подсказали, что у символов "\n" и управляющих символов, разные коды. Но использовать это на практике у меня не получилось smile Как корректно отсеять текстовые символы от управляющих?

Автор: skalex 11.4.2006, 08:00
Wolf1994, покажи исходный текст $str и что хочешь получить в итоге.

Автор: paraZite 11.4.2006, 11:08
Цитата
Никак не получается нормально отобразить символы "\n". При: str_replace ('\n', '\\n', $str) - ничего не получается, а при str_replace ("\n", '\\n', $str) - заменяются также управляющие символы переноса строк. Мне подсказали, что у символов "\n" и управляющих символов, разные коды. Но использовать это на практике у меня не получилось  Как корректно отсеять текстовые символы от управляющих?
Тебе так надо???
Код
str_replace("\n", '\n<br>', $str);

Автор: Wolf1994 11.4.2006, 14:30
Вот текст считывающийся в $str из текстового файла:
Цитата

$emailto=\"Ваш e-mail\";
$subject=\"IP\";
$message=\"ip: \".$ip;
$res = mail($emailto, $subject, $message,
\"Return-Path: \\n\".
\"From: Bot\\n\".
\"Reply-To: \\n\".
\"Content-Type: text/plain; charset=windows-1251\\n\".
\"Content-Transfer-Encoding: 8bit\/\n\".
\"Date: \".date(\"r\").\"\\n\".
\"X-Mailer: mailer_\".$SERVER_NAME);

... smile у меня выполняется перед обработкой строки функция стрипслэшей, соответственно "\\n" меняется на "\n" и потом его уже не отделить от управляющего символа.

Решением оказалось:
Код

 $str=str_replace ("\\r\\n", "|r|n", $str);
 $str=str_replace ("\\n", "|n", $str);
 $str=stripslashes ($str) ;
 //...Обработка строки...
 $str=str_replace ("|r|n", '\r\n', $str);
 $str=str_replace ("|n", '\n', $str);
 //Вывод строки 


Всем спасибо. Проблема решена.

Автор: smartov 11.4.2006, 14:40
Цитата(Wolf1994 @ 11.4.2006, 13:30 Найти цитируемый пост)
Проблема решена

Наверное надо пометить как решенный, чтобы людей не смущать...

Автор: Wolf1994 11.4.2006, 21:41
Цитата(smartov @ 11.4.2006, 14:40 Найти цитируемый пост)
Наверное надо пометить как решенный, чтобы людей не смущать...

Да... Как-то не привык к этой фитче... Пометил.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)