600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > php正则 替换div标签内容 PHP 正则匹配标签内容 根据字符串长度进行替换

php正则 替换div标签内容 PHP 正则匹配标签内容 根据字符串长度进行替换

时间:2023-10-10 06:04:14

相关推荐

php正则 替换div标签内容 PHP 正则匹配标签内容 根据字符串长度进行替换

写了一个函数

/**

* @param string $html html文本数据

* @param array $rule 处理的规则, [ '需要处理的标签' => 限制的字符数量 ]

*

*/

function processing($html, $rule){

$outHtml = "";

$pattern = '/]+)>(.*)]+)>/U'; // 0为带标签的数据 1前标签 2为不带标签的文本内容 3后标签

preg_match_all($pattern, $html, $data);

foreach($data[3] as $k => $v){

if(isset($rule[$v])){

$len = mb_strlen($data[2][$k], 'utf8');

if($len > $rule[$v]){

$start = 0;

$end = $len;

do{

$subText = mb_substr($data[2][$k], $start, $rule[$v], 'UTF-8');

$outHtml .= "{$subText}{$data[3][$k]}>";

$len -= $rule[$v];

$start += $rule[$v];

if($len<0) {

$len = 0;

$start = $end;

}

}while($len);

continue;

}

}

$outHtml .= $data[0][$k];

}

return $outHtml;

}

使用

$html = '

是的范德萨第三方第三方水电费送达发送发斯蒂芬送达送达

这是H1更好地规划获得更好地方获得更好

水电费第三方都是范德萨范德萨范德萨水电费阿道夫告诉对方水电费电风扇分费第三方都是范德萨范德萨范德萨水电费阿道夫告诉对方水电费电风扇分费第三方都是范德萨范德萨范德萨水电费阿道夫告诉对方水电费电风扇分

这是一段测试,此处是需要处理的一段标题数据!字符超过指定字数会对这段进行处理,数据数据数据数据数据数据

这是一另段测试,这里是H2的数据,数据

奋斗过水电费是第三个是是个地方官

';

$out = processing($html, ['h1' => 20, 'h2' => 10]);

var_dump($out);

规则中符合规定的h1、h2会进行替换,变成带相同标签的多行,并且带了标签的class等属性。这样就可以随意设置要替换的标签和长度了。

不用带的话会更好处理,改一改do中间那一段就行。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。