Замена первой строки текста

Patrul

Новичок
Замена первой строки текста

Есть переменная содержащая в себе текст с абзацами, разделенными \n

Нужно выделить жирным первый абзац текста и во всем тексте заменить \n на <br>

Сейчас я использую довольно длинное, ресурсоемкое решение и пишу сюда в надежде, что кто-то сможет подсказать решение проще.

$text - переменная с текстом


PHP:
 echo '<p><strong>'.preg_replace('/(.[^\n]*)[\n](.*)$/isU','$1</strong></p><p>',$text).preg_replace('/[\n]/','<br>',preg_replace('/^(.[^\n]*)[\n]/','',$text)).'</p>'
 

Фанат

oncle terrible
Команда форума
а насколько оно ресурсоемкое?
хотя, конечно, сочетание двух последних реплейсов смотрится малоосмысленно. зачем сначала менять кучу переводов строк на один, а потом этот один - на бр? Сразу нельзя разве?
 

Patrul

Новичок
Ну вот этот кусок мне собственно и не нравится.

PHP:
preg_replace('/[\n]/','<br>',preg_replace('/^(.[^\n]*)[\n]/','',$text))
Не совсем понял Вашу фразу: сначала менять кучу переводов строк на один, а потом этот один - на бр

В этом куске я убираю первую строку, и в тексте без первой строки заменяю все переносы.

Вот в голову пришло еще одно решение, оцените, пожалуйста, лучше ли оно:
PHP:
$array=preg_split('/[\n](.*)/sU',$text);
echo '<b>'.$array[0].'</b><br>';
$x=1;
while ($array[$x])
{
	echo $array[$x].'<br>';
	$x++;
}
 

Фанат

oncle terrible
Команда форума
нет, массив всегда будет хуже.
Не совсем понял Вашу фразу:
что в ней непонятного?
если надо заменить, скажем, в строке все буквы "а" на "бэ", то как это лучше сделать? сначала заменить "а" на "вэ", а потом "вэ" на "бэ", или СРАЗУ заменить "а" на "бэ"? почему первый же реплейс не меняет сразу переводы строк на бр?
 

Фанат

oncle terrible
Команда форума
C_TIGER
ну оно делает не точно то же самое.
хотя, скорее всего, отсутствующее и не нужно
 
Сверху