php截取函数案例,PHP 截取字符串函数功能实例

对PHP 截取字符串函数整理感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编两巴掌来看看吧!

1、截取GB2312字符用的函数

//截取中文字符串

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,2);

$i++;

} else

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

}

return $tmpstr;

}

?>

2. 截取utf8编码的多字节字符串

//截取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','$1',$str);

}

?>

3. UTF-8、GB2312都支持的汉字截取函数

/**

* @param

* @author 编程之家 jb51.cc jb51.cc

Utf-8、gb2312都支持的汉字截取函数

cut_str(字符串,截取长度,开始长度,编码);

编码默认为 utf-8

开始长度默认为 0

*/ 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],$sublen))."...";

return join('',$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,1))>129)

{

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

}

else

{

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

}

}

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

}

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

return $tmpstr;

}

}

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

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

?>

4. BugFree 的字符截取函数

/**

* @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,3);

$I = $I + 3;

}

elseif( ord($StringTMP) >=192 )

{

$StringTMP = substr($String,2);

$I = $I + 2;

}

else

{

$I = $I + 1;

}

$StringLast[] = $StringTMP;

}

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

if($Append)

{

$StringLast .= "...";

}

return $StringLast;

}

}

$String = "jb51.cc-- PHP程序员站";

$Length = "20";

$Append = false;

echo sysSubStr($String,$Append);

?>

总结

以上是编程之家为你收集整理的PHP 截取字符串函数功能实例全部内容,希望文章能够帮你解决PHP 截取字符串函数功能实例所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值