我想在创建xml文件时替换一些空的p
标记。
<p> <br> </p>
<p> </p>
我使用了str_replace
。这不起作用我们必须动态删除那个。也许我们可以使用preg_replace
。
你能不能把preg_replace
表达给我写一下......
谢谢。
答案 0 :(得分:1)
您可以使用正则表达式:使用此正则表达式删除空段落
尝试
$data = // your html data
$pattern = "/<p[^>]*><\\/p[^>]*>/";
$data = preg_replace($pattern, '', $data);
要替换所有空标记:
$pattern = "/<[^\/>]*>([\s]?)*<\/[^>]*>/";
答案 1 :(得分:0)
首先,您应该考虑不将空<p>
放在XML文件中。
但是,如果无法做到这一点,您可以使用可选的空格和<p></p>
标记替换<br>
标记,如下所示:
$data = '[...]'
$attr = '(?:\s+[\w\d\-]+\s*=\s*(["\'])(?:\\\\1|[^\\1])+\\1)*\s*';
$regex = "~<p{$attr}>(?:\s+|<br\s*/?>)*</p>~i";
// Replace empty paragraphs with optional
// whitespace and <br> inside it
$data = preg_replace($regex, '', $data);
修改强>
如果您只想删除包含空格的段落,则:
$data = 'asd <p> </p> asd';
$data = str_replace('<p> </p>', '', $data);
答案 2 :(得分:0)
试试这个:
$data = preg_replace("/<p[^>]*>\s*<\/p[^>]*>/i", "", $data);