我正在尝试将双倍生成的</p>
替换为:
$excerpt = str_replace('</p></p>', '</p>', $excerpt);
但是我的PHP在第一个</p>
和第二个</p>
如何删除</p>
代码之间的所有空格?
我的字符串看起来像这样:
<blockquote>
<p>Text</p> <!-- here's unknown amount of space generated by php --> </p>
</blockquote>
这与WordPress Stackexchange上的this问题有关。
答案 0 :(得分:1)
使用preg_replace()
,您可以使用以下正则表达式进行此替换:
/<\/p>\s+<\/p>/
您的代码看起来像这样:
$pat = '/<\/p>\s+<\/p>/';
$replacement = '<\p>';
$excerpt = preg_replace( $pat, $replacement, $excerpt );
让我们打破这个正则表达式:
<\/p>
- 匹配结束<\p>
元素(请注意斜线的转义)\s+
- 匹配一个或多个空白字符<\/p>
- 匹配结束<\p>
元素(请注意斜线的转义)通常,您需要在正则表达式中添加全局修饰符g
,以便在匹配模式的每次出现时进行替换,但preg_replace
函数默认情况下将执行全局替换。 / p>
以下是您可以测试和使用的示例 - http://regex101.com/r/dA3kU0/2