php中getSubstr()是什么意思

例如这样的是什么意思 getSubstr($Source_code,✀ src="✀,✀.mp4✀)
2025-03-07 08:16:40
推荐回答(1个)
回答1:

方法一:
";echo substr($str,0,12)."
";echo mb_strlen($str,"UTF8")."
";echo mb_substr($str,0,12,"UTF8")."
";?>

显示结果如下
34
107sadf网�
16
107sadf网站工作室


strlen()函数返回字符串所占的字节长度,一个英文字母、数字、各种符号均占一个字节,它们的长度均为1。一个中文字符占两个字节,所以一个中文字符的长度是2,对于一个UTF-8的中文字符,会把它当做长度为3来处理。

怎么准确的计算字符串的长度呢?这里,得引入另外一个函数mb_strlen()。mb_strlen()函数的用法与strlen()几乎一摸一样,只是多了一个指定字符集编码的参数。函数原型为:

  • int mb_strlen(string string_input, string encode); 

  • 在mb_strlen计算时,选定内码为UTF8,则会将一个中文字符当作长度1来计算。


  • mb_substr也同样的原理

  • 注:mb_strlen与mb_substr并不是PHP的核心函数,使用前需要打开php.ini中的extension=php_mbstring.dll这一项


  • 方法二:



  • 0xa0){     //ord()函数取得substr()的第一个字符的ASCII码,如果大于0xa0的话则是中文字符                $tmpstr.=substr($str,$i,3);        //设置tmpstr递加,substr($str,$i,3)的3是指三个字符当一个字符截取(因为utf8编码的三个字符算一个汉字)                $i+=2;            }else{                                             //其他情况(英文)按单字符截取                $tmpstr.=substr($str,$i,1);            }        }        return $tmpstr;}echo chinesesubstr($str,0,12)."
    ";?>


  • 最后结果显示为:


  • 107sadf网站