Вопрос

$variable = 'Afrikaans 
Shqip - Albanian  
Euskara - Basque';

Как я могу преобразовать каждую новую строку в абзац?

$variable должен стать:

<p>Afrikaans</p>
<p>Shqip - Albanian</p>
<p>Euskara - Basque</p>
Это было полезно?

Решение

Попробуй это:

$variable = str_replace("\n", "</p>\n<p>", '<p>'.$variable.'</p>');

Другие советы

Следующее должно сделать трюк:

$variable = '<p>' . str_replace("\n", "</p><p>", $variable) . '</p>';
$array = explode("\n", $variable);
$newVariable = '<p>'.implode('</p><p>', $array).'</p>'
<?php
$variable = 'Afrikaans  
Shqip - Albanian   
Euskara - Basque'; 
$prep0 = str_replace(array("\r\n" , "\n\r") , "\n" , $variable);
$prep1 = str_replace("\r" , "\n" , $prep0);
$prep2 = preg_replace(array('/\n\s+/' , '/\s+\n/') , "\n" , trim($prep1));
$result = '<p>'.str_replace("\n", "</p>\n<p>", $prep2).'</p>'; 
echo $result;
/*
<p>Afrikaans</p>
<p>Shqip - Albanian</p>
<p>Euskara - Basque</p>
*/
?>

Объяснение:

$ Prep0 и $ Prep1: Убедитесь, что каждая строка заканчивается n.

$ Prep2: Удалить избыточное пробеловое пространство. Держите свободные размки.

Результат: Добавить P Теги.

Если вы не включите $ Prep0, $ Prep1 и $ Prep2, $ результат будет выглядеть так:

<p>Afrikaans  
</p>
<p>Shqip - Albanian   
</p>
<p>Euskara - Basque</p>

Я думаю, что не очень мило.

Кроме того, не используйте preg_replace, если вы не должны. В большинстве случаев STR_replace является быстрее (по крайней мере, в соответствии с моим опытом). Смотрите комментарии ниже для получения дополнительной информации.

Пытаться:

$variable = 'Afrikaans
Shqip - Albanian  
Euskara - Basque';

$result = preg_replace("/\r\n/", "<p>$1</p>", $variable);
echo $result;
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top