$str = '這是<div>一道<a href="http://www.baidu.com">php字符串</a>截取題</div>。';將以上字符串截取前7個(gè)字符顯示出來,最終應(yīng)該要這個(gè)結(jié)果:'這是<div>一道<a href="http://www.baidu.com">php</a></div>'要求:如果字符串中有HTML標(biāo)簽就略過不記數(shù)如果截取完之后有HTML標(biāo)簽被截?cái)嗔?,那么要在最后把截?cái)嗟臉?biāo)簽再補(bǔ)上結(jié)束標(biāo)簽
2 回答

明月笑刀無情
TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超4個(gè)贊
沒有推測題目的用途,單純按要求一寫了個(gè)正則替換
function pure_cut($str, $len) { $reg = '/' . str_repeat('[^<>]((?:<[^>]+>)+)?', $len) . '$/u'; $str = preg_replace_callback($reg, function($matches) { array_shift($matches); $replace = join('', $matches); return $replace; }, $str, 7); return $str; }echo pure_cut($str, 7);
不過要求2 沒太明白。在要求1滿足的情況下,html 標(biāo)簽是不會(huì)被破壞的,不需要專門去修復(fù)啊。
添加回答
舉報(bào)
0/150
提交
取消