2014-10-30 119 views
0

如何更换<p>hello</p> <p>world</p>hello<br />world <br />PHP替换段落换行

我试图寻找在堆栈上,但没有匹配的结果。

+1

无符合资料?只是谷歌取代字符串的PHP。没有任何尝试? – Ghost 2014-10-30 09:13:47

+0

@Ghost **不要**使用正则表达式和字符串替换来处理HTML – 2014-10-30 09:14:59

+2

@AleksG罚款。然后使用HTML解析器 – Ghost 2014-10-30 09:16:18

回答

3

你可以通过使用str_replace()函数来实现。

例如:

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

将不起作用,也删除第一个也是最后一个

。打破猫头鹰paragraphe – 2014-10-30 09:21:17

+0

这一个应该工作。 – 2014-12-21 08:56:51

0

使用该功能防止打破第一个和最后<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; 
?> 

试试上面的代码。

3

我试试这个自己,并得到我所期待的

$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);