background image

array_pop

(

$tagStack

); 

$result

 .= 

$tag


else

 

if

 (preg_match("~<([a-z0-9]+)[^/>]*?>~si", 

$tag

$match

)) { 

array_push

(

$tagStack

$match

[1]); 

$result

 .= 

$tag

else

 

if

 (preg_match("~<!--.*?-->~si", 

$tag

)) { 

$result

 .= 

$tag

else

 { 

if

 (

$len

 + mstrlen(

$tag

) < 

$length

) { 

$result

 .= 

$tag

$len

 += mstrlen(

$tag

); 

else

 { 

$str

 = msubstr(

$tag

, 0, 

$length

 - 

$len

 + 1); 

$result

 .= 

$str

break



while

 (!

empty

(

$tagStack

)) { 

$result

 .= '</' . 

array_pop

(

$tagStack

) . '>'; 

return

 

$result

/** 

 

取中文字符串


* param $string 

 

字符串


* param $start 

 

起始位


* param $length 

 

长度


* param $charset 

 

编码


* param $dot 

 

附加字串

*/

 

function

 msubstr(

$string

$start

$length

$dot

 = '', 

$charset

 = 'UTF-8') { 

$string

 = 

str_replace

(

array

('&', '"', '<', '>', ' '), 

array

('&', '"', '<', '>', ' '), 

$string

); 

if

 (

strlen

(

$string

) <= 

$length

) { 

return

 

$string

if

 (

strtolower

(

$charset

) == 'utf-8') { 

$n

 = 

$tn

 = 

$noc

 = 0;