php заменить абзац на новую строку

как заменить <p>hello</p> <p>world</p> в hello<br />world <br />

Я пробовал искать в стеке, но нет соответствующего результата.

2

Решение

Вы можете сделать это с помощью функции str_replace ().

Например:

$string = "<p>hello</p> <p>world</p>";
$string = str_replace('<p>', '', $string);
$string = str_replace('</p>', '<br />' , $string);
4

Другие решения

Я сам пробую и получаю то, что ожидал

$pattern = '/<p>(\w+)\<\/p>/';
$subject = '<p>hello</p><p>world</p>';
$replacement = '${1}<br/>';
$out = preg_replace($pattern, $replacement, $subject);

Мне просто интересно, что лучше, регулярное выражение или str_replace

Я написал лучшее решение, надеюсь, что все смогут увидеть его полезным и, возможно, улучшить его.

$pattern = '/<p(.*?)>((.*?)+)\<\/p>/';
$replacement = '${2}<br/>';
$subject = 'html string';
$out = preg_replace($pattern, $replacement, $subject);
3

Используйте это, чтобы не сломать первый и последний <p></p> :

$string = str_replace($string, '</p><p>', '');

Но если между тегами окажется пробел, он не будет работать.

0

<?php
$str = '<p>hello</p> <p>world</p>';
$replaceArr = array('<p>', '</p>', '</p> <p>');
$replacementArr = array('', '', '<br />');
$str = str_replace($replaceArr, $replacementArr, $str);
echo $str;
?>

Попробуйте приведенный выше код.

0
По вопросам рекламы [email protected]