我试图从字符串中删除空段落。 是的,我知道这听起来很简单,但它只是不起作用。我尝试了很多我在论坛上阅读的解决方案,但它们都不会起作用。 我应该补充说,我从一个从json文件创建的数组中获取了我想要转换的字符串。 这是我的代码:
if ($json_file = json_decode(file_get_contents("export.json"), true)) {
$str = $json_file[12]["the_string"];
}
echo $str;
当我查看页面的源代码时,我看到了:
<p> </p>
<p> </p>
<p> </p>
<p>Some text, Some text</p>
现在我想摆脱只有空段落。 我试过这个:
echo preg_replace("/<p[^>]*>[\s| ]*<\/p>/", '', $str);
......但它不起作用。这个更简单的解决方案也没有:
echo str_replace("<p> </p>","",$str);
尝试上述两种解决方案,输出正好是原始字符串。 任何帮助都将受到高度赞赏,因为我现在在论坛上搜索了半天... 提前谢谢!
编辑: 它必须使用我从数组中获取的字符串格式。为了测试我只是将输出复制/粘贴到下面,这里它的工作非常好!
$str2 = "
<p> </p>
<p> </p>
<p> </p>
<p>Some text, Some text</p>";
echo preg_replace("/<p[^>]*>[\s| ]*<\/p>/", '', $str2);
EDIT2:这是在json文件中访问的实际内容:
<p>\u00a0<\/p>\n<p>\u00a0<\/p>\n<p>\u00a0<\/p>\n<p>This is some text<\/p>
答案 0 :(得分:2)
好吧,经过一些关于UTF-8,Unicode和许多其他内容的阅读后,我找到了一个有效的解决方案(实际上在论坛上)。
echo str_replace("<p>\xc2\xa0</p>","",$str);
很好,很容易。但由于\x2a\xa0
只是nbsp;
,我仍然不知道为什么没有工作:<p> </p>
......