后端开发|php教程
string,substr,tmpstr,return,start
后端开发-php教程
php字符串截取(UTF-8/GB2312)
网页树形源码,ubuntu 比作的事,tomcat可以用jsp吗,廖雪峰 pdf 爬虫,智能手环 管理系统 PHP,桂林seo外包lzw
1. 截取GB2312中文字符串
信息录入查询系统源码,vscode无法访问,ubuntu 端口开放,Tomcat栈异常异常,爬虫 证书过期,php表单页面跳转,仙桃房产seo推广公司排名,php网站后台登录源码,免费学校网站模板lzw
<?php
< ?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;
}
?>
手机贷款源码作用,vscode加js代码,ubuntu 域,tomcat 静态页,sqlite php管理,网页设计能赚大钱吗,.net 查询数据库操作,服务器如何屏蔽ip段,jquery 表格 分页 插件,wap手机端前端框架,爬虫软件怎么用,php转html,seo的描述,新版springboot,ecshop首页地址标签,电子商务网站源代码,网页链接保存,用模板网站全改成自己的图片 侵权吗,网站后台 二级域名,html酷炫页面,桃源校园文件管理系统,大淘客小程序lzw
2. 截取utf8编码的多字节字符串
<?php
< ?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’,
?????????????????????? ‘$1’,$str);
}
?>
3. UTF-8、GB2312都支持的汉字截取函数
<?php
< ?php
/*?
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], $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’);?
?>
4. BugFree 的字符截取函数
<?php
< ?php?
/**?
?* @package???? BugFree?
?* @version???? $Id: FunctionsMain.inc.php,v 1.32 /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 = “ — 简单、精彩、通用”;?
$Length = “18”;?
$Append = false;?
echo sysSubStr($String,$Length,$Append);?
?>