Оберните текст с помощью <p>до появления первого <p> - PullRequest
2 голосов
/ 06 июня 2019

Как можно обернуть от начала текста в строке до появления первого <p>?Например, если строка

this is some <b>text</b><p>Beginning of a paragraph</p>

Я хочу

<p>this is some <b>text</b></p><p>Beginning of a paragraph</p>

Есть ли способ достичь этого?Спасибо!

Ответы [ 3 ]

2 голосов
/ 06 июня 2019

Возможно, попробуем

$str = '<p>' . preg_replace('#<p>#', '</p>\0', $str, 1);
0 голосов
/ 06 июня 2019

Если наши входные данные будут такими же простыми, как и в вопросе, мы начнем с простого выражения и preg_replace:

$re = '/(.+?)(<p>.+?<\/p>)/m';
$str = 'this is some <b>text</b><p>Beginning of a paragraph</p>';
$subst = '<p>$1<\/p>$2';

$result = preg_replace($re, $subst, $str);

echo $result;

Демо

выход

<p>this is some <b>text</b><\/p><p>Beginning of a paragraph</p>

RegEx Circuit

jex.im визуализирует регулярные выражения:

enter image description here

0 голосов
/ 06 июня 2019

Может быть использовать что-то вроде этого:

str_replace(".","</p>.<p>", $myText);
...