php截取html,PHP之根据内容长度截取HTML字符串

有些时候我们截取字符串的时候是带有HTML标签的,如果截取的时候只考虑内容长度而不包含HTML标签,截取字符串之后还要带有HTML标签,那么我们应该如何做呢?下面提供一个PHP方法:

/**

* 截取html字符串

*

* @param $s 字符串

* @param $zi 长度

* @param $ne 没有结束符的html标签

* @return string

*/

function G_htmlcut($s, $len, $ne = ',br,hr,input,img,') {

$s = preg_replace('/\s{2,}/', ' ', $s);

$os = preg_split('//', $s);

preg_match_all('//', $s, $or);

$s = '';

$tag = array();

foreach ($os as $k => $v) {

if ($v != '' && $v != ' ') {

$l = strlen($v);

for ($i = 0; $i < $l; $i++) {

if (ord($v[$i]) > 127) {

$s.=$v[$i] . $v[++$i] . $v[++$i];

} else {

$s.=$v[$i];

}

$len--;

if ($len < 1) {

break 2;

}

}

}

preg_match('/]+)[\s>]{1}/', $or[0][$k], $t);

$s.=$or[0][$k];

if (strpos($ne, ',' . strtolower($t[1]) . ',') === false && $t[1] != '' && $t[1] != ' ') {

$k = array_search('' . $t[1] . '>', $tag);

if ($k !== false) {

unset($tag[$k]);

} else {

array_unshift($tag, '' . $t[1] . '>');

}

}

}

return $s . implode('', $tag);

}

使用测试:

$str = '位置:首页>新闻动态 > 中梦资讯 > 正文';

echo G_htmlcut($str, 5);

输出结果:位置:首页,查看源代码

位置:href="http://www.zmit.cn">首页

转载时请注明出处及相应链接,本文永久地址:https://blog.yayuanzi.com/7722.html

75d087ef9a9fb11dc373caaf33adbf7f.png

微信打赏

支付宝打赏

感谢您对作者terry的打赏,我们会更加努力!    如果您想成为作者,请点我

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值