3v4l.org

run code in 300+ PHP versions simultaneously
<?php function cn_substrr($str,$slen,$startdd=0) { $str = cn_substr(stripslashes($str),$slen,$startdd); return addslashes($str); } function cn_substr($str,$slen,$startdd=0) { global $cfg_soft_lang; if($cfg_soft_lang=='utf-8') { return cn_substr_utf8($str,$slen,$startdd); } $restr = ''; $c = ''; $str_len = strlen($str); if($str_len < $startdd+1) { return ''; } if($str_len < $startdd + $slen || $slen==0) { $slen = $str_len - $startdd; } $enddd = $startdd + $slen - 1; for($i=0;$i<$str_len;$i++) { if($startdd==0) { $restr .= $c; } else if($i > $startdd) { $restr .= $c; } if(ord($str[$i])>0x80) { if($str_len>$i+1) { $c = $str[$i].$str[$i+1]; } $i++; } else { $c = $str[$i]; } if($i >= $enddd) { if(strlen($restr)+strlen($c)>$slen) { break; } else { $restr .= $c; break; } } } return $restr; } $a = '测试这是一个测试'; //$a = 'xxxxbbbbbnnn'; $b = cn_substrr($a,5,0); var_dump($b); ?>

preferences:
47.12 ms | 402 KiB | 5 Q