$str = '這是<div>一道<a href="http://www.baidu.com">php字符串</a>截取題</div>。';將以上字符串截取前7個字符顯示出來,最終應該要這個結果:'這是<div>一道<a href="http://www.baidu.com">php</a></div>'要求:如果字符串中有HTML標簽就略過不記數如果截取完之后有HTML標簽被截斷了,那么要在最后把截斷的標簽再補上結束標簽
2 回答

明月笑刀無情
TA貢獻1828條經驗 獲得超4個贊
沒有推測題目的用途,單純按要求一寫了個正則替換
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 標簽是不會被破壞的,不需要專門去修復啊。
添加回答
舉報
0/150
提交
取消