вот я ввёл этот знак \n и он отображается как я его ввёл, а у меня на сайте почему-то превращается в новую строчку, объясните.
При входте применяю: PHP: <? function my_safen_str($value, $b_forbid_html = true) { $value = trim($value); if($b_forbid_html) $value = htmlspecialchars($value, ENT_QUOTES); else $value = mysql_real_escape_string($value); return $value; } ?> На выходе: PHP: <? //replaces just closed tags function my_convert_simple_tags_smart($str) { $arr_code = array ( "/\[b\](.*)\[\/b\]/Us", "/\[i\](.*)\[\/i\]/Us", "/\[s\](.*)\[\/s\]/Us", "/\[u\](.*)\[\/u\]/Us", "/\[h\](.*)\[\/h\]/Us", "/\[center\](.*)\[\/center\]/Us" ); $arr_html = array ( "<b>\\1</b>", "<i>\\1</i>", "<s>\\1</s>", "<u>\\1</u>", "<h3>\\1</h3>", "<center>\\1</center>" ); return preg_replace($arr_code, $arr_html, $str); } function my_convert_links($str) { // [link [url=http://gamedev.ru]http://gamedev.ru[/url] Game Dev Ru] $pattern = "/\[link\s+(\S+)\s+(.+)\]/U"; $replacement = "<a class='link' href='\\1'>\\2</a>\n"; $str = preg_replace($pattern, $replacement, $str); // [url=http://blabla.com]http://blabla.com[/url] [url=ftp://blabla.com]ftp://blabla.com[/url] $pattern = "/(?<!=)((?:http|https|ftp):\/\/[^\s\]\[]+\w)(?!>)/"; $replacement = "<a class='link' href=\"\\1\">\\1</a>\n"; return preg_replace($pattern, $replacement, $str); } function my_convert_new_line($str) { return nl2br($str); //return str_replace("\n", "<br>", $str); } function my_convert_email($str) { $pattern = "/(\w+)(@)(\w+\.\w+)/"; $replacement = "<a href='mailto:\\1 at \\3' class='mail' " . "title='Собаку поставьте сами.' >". "\\1</a>\n"; return preg_replace($pattern, $replacement, $str); } function my_convert_code($str) { $str = trim($str); $str = str_replace("\t", " ", $str); return "<pre class='code'>" . $str . "</pre>"; } function my_format_str_for_view($str) { if(strlen($str) < 3) return $str; //copy all codes to separate array $pattern = "/\[code\](.+)\[\/code\]/sU"; $code_matches = array(); preg_match_all($pattern, $str, $code_matches, PREG_SET_ORDER); //replace all codes in source string with label $pattern="/(\s*\[code\].+\[\/code\]\s*)/sU"; $replacement="<code_link>"; $str=preg_replace($pattern, $replacement, $str); $str = preg_replace("/\s*\<code_link\>\s*/", "<code_link>", $str); //colorize each code block $codes=array(); foreach($code_matches as $code_match) { $code=$code_match[1]; $codes[]=my_convert_code($code); } //format source string without codes $str=my_convert_simple_tags_smart($str); $str=my_convert_links($str); $str=my_convert_tags($str); $str=my_convert_email($str); $str=my_convert_new_line($str); //$str=preg_replace("/(\<\/h3\>\s*<br>)/", "</h3>", $str); //$str=preg_replace("/(\s*<br>\s*){3,}/", "<br><br>", $str); //insert in formated source string formated codes in place of labels foreach($codes as $code) { $str=preg_replace("/\<code_link\>/", $code, $str, 1); } $str=wordwrap($str, 70, ' ', true); return $str; } ?>
дык ведь PHP: function my_convert_new_line($str) { return nl2br($str); //return str_replace("\n", "<br>", $str); } PHP: $str=my_convert_new_line($str);
Так чё когда я ввожу \n в ПОЛЕ ВВОДА оно щитается символом перевода строки а не просто знаками \ и n.