Итак: текст при выводе обрабатывается функцией
function br($br){
$br=str_replace("\r\n","<br/>",$br);
return $br;
}
все работает и устраивает. но когда я вывожу участок кода заключенный в bb
( php] /php] )то перенос строк не работает а выводит тег <br/> чтоб в участке кода перенос заработал, нужно переносить \n как мне организовать это, чтоб весь текст без bb кодов переносился <br/> а в bb \n подскажите?
function br($br){
$br=str_replace("PHP_EOL","<br/>",$br);
return $br;
}]
Обрабатывая ею, перенос в bb коде осуществляется, но остальной текст не переноситься. ни как не могу понять как сделать. использовал много вариантов, но не выходит ни как. как построить функцию правильно?
Rakovskiy, пробывал не выходит тоже.
# Melcorn (08.07.2014 / 21:36)
function br($br){
$br=str_replace("PHP_EOL","
",$br);
return $br;
}]
Обрабатывая ею, перенос в bb коде осуществляется, но остальной текст не переноситься. ни как не могу понять как с
Используй функцию nl2br()
Ну и на всякий случай,почему не работала твоя функция
function br($br){
$br=str_replace(PHP_EOL,"<br/>",$br);
return $br;
}
# Melcorn (08.07.2014 / 21:37)
Rakovskiy, пробывал не выходит тоже.
Значит чёт не правильно пишешь.
вот функция bb кода
function code_bbcode($text)
{
$text = html_entity_decode(trim($text), ENT_QUOTES, 'UTF-8');
$text = preg_replace_callback('#\[php\](.*?)\[/php\]#si',
create_function('$matches', '
$matches[1] = htmlspecialchars_decode($matches[1]);
$matches[1] = (stripos($matches[1], "<?php") === false)? "<?php \r\n".$matches[1]. "\n?>": $matches[1];
$matches[1] = highlight_string($matches[1], 1);
$br_num = substr_count($matches[1], "\n");
$numeric[] = "<table cellpadding=\"0px\" cellspacing=\"0px\" border=\"0\"><tr><td style=\"font-size:13px; border-right:#999999 ; padding-right:5px; font-family:\'Courier New\', Courier, monospace; text-align:right; vertical-align:top;\">";
for($i=1; $i<=$br_num + 1; $i++)
{
$numeric[] = $i."<br />";
}
$numeric[] = "</td><td style=\font-size:13px; padding:1px 5px 0px; vertical-align:top; white-space:nowrap;\">".$matches[1];
$numeric[] = "</td></tr></table>";
$matches[1] = implode("", $numeric);
$result = "<div style=\"background-color:#A9B8C2; padding:1px 5px 0px; border: 1px solid #9fa9b8; font-family: Lucida Grande, Verdana, Helvetica, Arial, sans-serif;font-size:10px; \">PHP</div><div style=\"background-color:#e0e6e9; border: 1px solid #9fa9b8; padding:5px;\">".$matches[1]." </div>";
return $result;'), $text);
вот вывожу как
code_bbcode(htmlspecialchars(br($post_post['text']))))
Melcorn, br(code_bbcode(htmlspecialchars($post_post['text']))))
Rakovskiy, пробывал как один из вариантов, сейчас поменял опять, результат тот же. думал как то через
if()
сделать но какой параметр задать ему не пойму.