用PHP中的空格替换两个html标记之间的所有字符

时间:2018-06-25 18:58:56

标签: php html regex

我正在尝试编写一些代码,以用空格替换两个html标记(具体来说是<del>标记)之间的每个字符,但是我在PHP字符串方法中苦苦挣扎。
代码如何工作的示例:如果初始字符串为"blahblah<del>blahblah</del>blahblah",则理想情况下,结果为"blahblah blahblah",带有8个空格(<del>标记之间段的8个字符长度) )在两个blahblah

之间

我正在为一个基本的服务器编写此代码,因此我无权访问Node等其他任何库/服务。

任何帮助将不胜感激!

编辑:<del>标记之间的文本长度可变。它并不总是8个字符长。

1 个答案:

答案 0 :(得分:-1)

您可以使用preg_replace_callback<del></del>之间提取内容。然后,您可以使用该返回值计算内部的字符数,并将其替换为原始字符串。这样的事情应该做到:

$string = 'blahblah<del>blahblah</del>blahblah';
echo preg_replace_callback('~<del>(.*?)</del>~', function($match) {
        $replace = str_repeat(' ', mb_strlen($match[1]));
        return $replace;
}, $string);

https://3v4l.org/ht22A