Home  >  Article  >  Backend Development  >  Collected string interception functions in php_PHP tutorial

Collected string interception functions in php_PHP tutorial

WBOY
WBOYOriginal
2016-07-20 11:10:40884browse

This article collects several commonly used string interception functions. This solves the problem of garbled characters in various encodings in PHP. Students in need can refer to them.

Intercept GB2312 Chinese string

The code is as follows Copy code
 代码如下 复制代码

< ?php

//截取中文字符串

function mysubstr($str, $start, $len) {

$tmpstr = "";

$strlen = $start + $len;

for($i = 0; $i < $strlen; $i++) {

if(ord(substr($str, $i, 1)) > 0xa0) {

$tmpstr .= substr($str, $i, 2);

$i++;

} else

$tmpstr .= substr($str, $i, 1);

}

return $tmpstr;

}

?>

< ?php

//Intercept Chinese string
代码如下 复制代码

< ?php

//截取utf8字符串

function utf8Substr($str, $from, $len)

{

return preg_replace('#^(?:[x00-x7F]|[xC0-xFF][x80-xBF]+){0,'.$from.'}'.

'((?:[x00-x7F]|[xC0-xFF][x80-xBF]+){0,'.$len.'}).*#s',

'',$str);

}

?>

function mysubstr($str, $start, $ len) {

$tmpstr = "";

$strlen = $start + $len;

for($i = 0; $i < $strlen; $i++) {

if(ord(substr($str, $i, 1)) > 0xa0) {

$tmpstr .= substr($str, $i, 2) ;

$i++;

 代码如下 复制代码

function cut_str($string, $sublen, $start = 0, $code = 'UTF-8')

{

if($code == 'UTF-8')

{

$pa = "/[x01-x7f]|[xc2-xdf][x80-xbf]|xe0[xa0-xbf][x80-xbf]|[xe1-xef][x80-xbf][x80-xbf]|xf0[x90-xbf][x80-xbf][x80-xbf]|[xf1-xf7][x80-xbf][x80-xbf][x80-xbf]/";

preg_match_all($pa, $string, $t_string);

 

if(count($t_string[0]) - $start > $sublen) return join('', array_slice($t_string[0], $start, $sublen))."...";

return join('', array_slice($t_string[0], $start, $sublen));

}

else

{

$start = $start*2;

$sublen = $sublen*2;

$strlen = strlen($string);

$tmpstr = '';

 

for($i=0; $i< $strlen; $i++)

{

if($i>=$start && $i< ($start+$sublen))

{

if(ord(substr($string, $i, 1))>129)

{

$tmpstr.= substr($string, $i, 2);

}

else

{

$tmpstr.= substr($string, $i, 1);

}

}

if(ord(substr($string, $i, 1))>129) $i++;

}

if(strlen($tmpstr)< $strlen ) $tmpstr.= "...";

return $tmpstr;

}

}

$str = "abcd需要截取的字符串";

echo cut_str($str, 8, 0, 'gb2312');

?>

} else$tmpstr .= substr($str, $i, 1);}return $tmpstr;}?> 2. Intercept utf8 encoded multi-byte characters String
The code is as follows Copy code
< ?php<🎜><🎜>//Intercept utf8 string<🎜><🎜>function utf8Substr($str, $from, $len)<🎜><🎜 >{<🎜><🎜>return preg_replace('#^(?:[x00-x7F]|[xC0-xFF][x80-xBF]+){0,'.$from.'}'.<🎜> <🎜>'((?:[x00-x7F]|[xC0-xFF][x80-xBF]+){0,'.$len.'}).*#s',<🎜><🎜>' $1',$str);<🎜><🎜>}<🎜><🎜>?>
3. Both UTF-8 and GB2312 are supported Chinese character interception function<🎜>/*<🎜><🎜>Chinese character interception function supported by Utf-8 and gb2312<🎜><🎜>cut_str(string, interception length, start length, encoding);<🎜><🎜>The encoding defaults to utf-8<🎜><🎜>The starting length defaults to 0<🎜><🎜>*/<🎜>
The code is as follows Copy code
<🎜>function cut_str($string, $sublen, $start = 0, $code = 'UTF-8')<🎜><🎜>{<🎜><🎜>if($code == 'UTF-8')<🎜><🎜>{< 🎜><🎜>$pa = "/[x01-x7f]|[xc2-xdf][x80-xbf]|xe0[xa0-xbf][x80-xbf]|[xe1-xef][x80-xbf][ x80-xbf]|xf0[x90-xbf][x80-xbf][x80-xbf]|[xf1-xf7][x80-xbf][x80-xbf][x80-xbf]/";<🎜><🎜 >preg_match_all($pa, $string, $t_string);<🎜><🎜> <🎜><🎜>if(count($t_string[0]) - $start > $sublen) return join('', array_slice ($t_string[0], $start, $sublen))."...";return join('', array_slice($t_string[0], $start, $sublen));}else{$start = $start*2;$sublen = $sublen*2;$strlen = strlen($string);$tmpstr = ''; for($i=0; $i< $strlen; $i++)<🎜><🎜>{<🎜><🎜>if($i>=$start && $i< ($start+$sublen))<🎜><🎜>{<🎜><🎜>if( ord(substr($string, $i, 1))>129){$tmpstr.= substr($string, $i, 2);}else{$tmpstr.= substr($string, $i, 1);} }if(ord(substr($string, $i, 1))>129) $i++;}if(strlen($tmpstr)< ; $strlen ) $tmpstr.= "...";return $tmpstr;}} $str = "abcd needs to intercept the string";echo cut_str($str, 8, 0, 'gb2312');?>

4. BugFree 的字符截取函数 < ?php

 代码如下
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
代码如下 复制代码

/**

* @package BugFree

* @version $Id: FunctionsMain.inc.php,v 1.32 2005/09/24 11:38:37 wwccss Exp $

*

*

* Return part of a string(Enhance the function substr())

*

* @author Chunsheng Wang

* @param string $String the string to cut.

* @param int $Length the length of returned string.

* @param booble $Append whether append "...": false|true

* @return string the cutted string.

*/

function sysSubStr($String,$Length,$Append = false)

{

if (strlen($String) < = $Length )

{

return $String;

}

else

{

$I = 0;

while ($I < $Length)

{

$StringTMP = substr($String,$I,1);

if ( ord($StringTMP) >=224 )

{

$StringTMP = substr($String,$I,3);

$I = $I + 3;

}

elseif( ord($StringTMP) >=192 )

{

$StringTMP = substr($String,$I,2);

$I = $I + 2;

}

else

{

$I = $I + 1;

}

$StringLast[] = $StringTMP;

}

$StringLast = implode("",$StringLast);

if($Append)

{

$StringLast .= "...";

}

return $StringLast;

}

}

 

$String = "php100.com-- 简单、精彩、通用";

$Length = "18";

$Append = false;

echo sysSubStr($String,$Length,$Append);

?>

复制代码
/**
* @package BugFree

* @version $Id: FunctionsMain.inc.php,v 1.32 2005/09/24 11:38:37 wwccss Exp $*** Return part of a string(Enhance the function substr())** @author Chunsheng Wang * @param string $String the string to cut.
* @param int $Length the length of returned string.
* @param booble $Append whether append "...": false|true
* @return string the cutted string.*/function sysSubStr($String,$Length,$Append = false){if (strlen($String) < = $Length )<🎜><🎜>{<🎜><🎜>return $String;<🎜><🎜>}<🎜><🎜>else<🎜><🎜>{<🎜><🎜>$I = 0;<🎜><🎜>while ($I < $Length)<🎜><🎜>{<🎜><🎜>$StringTMP = substr($String,$I,1);<🎜><🎜>if ( ord($StringTMP) >=224 ){$StringTMP = substr($String,$I,3);$I = $I + 3;}elseif( ord($StringTMP) >=192 ){$StringTMP = substr($String,$I,2);$I = $I + 2;}else{$I = $I + 1;}$StringLast[] = $StringTMP;}$StringLast = implode("",$StringLast);if($Append){$StringLast .= "...";}return $StringLast;}} $String = "php100.com-- 简单、精彩、通用";$Length = "18";$Append = false;echo sysSubStr($String,$Length,$Append);?> http://www.bkjia.com/PHPjc/444714.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/444714.htmlTechArticle本文章是收集了几个常用的字符串截取函数,这是解决了php中对各种编码的字符截取会乱码的问题,有需要的同学可以参考一一下。 截取...