Вопрос
$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;
Не связан с StackOverflow