php字符串截取中文截取2,单字节截取模式
//中文截取2,单字节截取模式
function cn_substr($str,$slen,$startdd=0){
$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;
}
function cn_midstr($str,$start,$len){
return cn_substr($str,$slen,$startdd);
}
相关推荐
-
用PHP来计算某个目录大小的方法
PHP CURL session COOKIE 可以调用系统命令,还可以这样: 复制代码 代码如下: function dirsize($dir) { @$dh = opendir($dir); $size = 0; while ($file = @readdir($dh)) { if ($file != "." and $file != "..") { $path = $dir."/".$file; if (is_dir($path)) { $
-
php strlen mb_strlen计算中英文混排字符串长度
比较strlen和mb_strlen 当字符全是英文字符的时候,两者是一样.这里主要比较一下,中英文混排的时候,两个计算结果.(测试时编码方式是UTF8) 复制代码 代码如下: <?php $str='中文a字1符'; echo strlen($str); echo '<br />'; echo mb_strlen($str,'UTF8'); //输出结果 //14 //6 ?> 结果分析:在strlen计算时,对待一个UTF8的中文字符是3个长度,所以"中文a字1符&q
-
PHP中字符与字节的区别及字符串与字节转换示例
字符: 字符是可使用多种不同字符方案或代码页来表示的抽象实体.例如,Unicode UTF-16 编码将字符表示为 16 位整数序列,而 Unicode UTF-8 编码则将相同的字符表示为 8 位字节序列.公共语言运行库使用 Unicode UTF-16(Unicode 转换格式,16 位编码形式)表示字符. php在UTF-8编码下,一个汉字占3个字符,gbk编码下只占2个字符. 字节(Byte): 字节是通过网络传输信息(或在硬盘或内存中存储信息)的单位. 应用: 如果数据库中表为UTF8
-
php使用递归计算文件夹大小
方法很简单,这里就不多废话了,直接奉上代码: 复制代码 代码如下: protected function dir_size($dir){ $dh = opendir($dir); //打开目录,返回一个目录流 $size = 0; //初始大小为0 while(false !== ($file = @readdir($dh))){ //循环读取目录下的文件 if($file!='.'
-
php对文件夹进行相关操作(遍历、计算大小)
为大家分享的第一个操作内容: 遍历并打印指定目录下所有文件 <?php //功能:遍历并打印指定目录下所有文件 function scan_dir($dir_name,$dir_flag=1) { static $FILE_COUNT=1; //记录文件数目 初值为1 目录名称不记 $FILE_COUNT--; //每调用一次scan_dir()函数自减1 @$dir_handle=opendir($dir_name); //抑制错误信息显示 便于自定义错误显示 if(!$dir_handle)
-
php计算整个目录大小的方法
本文实例讲述了php计算整个目录大小的方法.分享给大家供大家参考.具体实现方法如下: /** * Calculate the full size of a directory * * @author Jonas John * @version 0.2 * @param string $DirectoryPath Directory path */ function CalcDirectorySize($DirectoryPath) { // I reccomend using a normali
-
PHP实现字节数Byte转换为KB、MB、GB、TB的方法 原创
本文实例讲述了PHP实现字节数Byte转换为KB.MB.GB.TB的方法.分享给大家供大家参考,具体如下: 前面介绍了java实现字节数Byte转换为KB.MB.GB.TB的方法 ,这里改用PHP实现这一功能.代码非常简单: <?php function getFilesize($num){ $p = 0; $format='bytes'; if($num>0 && $num<1024){ $p = 0; return number_format($num).' '.$f
-
php计算整个mysql数据库大小的方法
本文实例讲述了php计算整个mysql数据库大小的方法.分享给大家供大家参考.具体如下: 这里用MB,KB或者GB的格式返回计算结果. function CalcFullDatabaseSize($database, $db) { $tables = mysql_list_tables($database, $db); if (!$tables) { return -1; } $table_count = mysql_num_rows($tables); $size = 0; for ($i=0
-
php计算一个文件大小的方法
本文实例讲述了php计算一个文件大小的方法.分享给大家供大家参考.具体如下: <?php function dirSize($directoty){ $dir_size=0; if($dir_handle=@opendir($directoty)) { while($filename=readdir($dir_handle)){ $subFile=$directoty.DIRECTORY_SEPARATOR.$filename; if($filename=='.'||$filename=='..
-
php字符串截取中文截取2,单字节截取模式
//中文截取2,单字节截取模式 function cn_substr($str,$slen,$startdd=0){ $restr = ""; $c = ""; $str_len = strlen($str); if($str_len < $startdd+1) return ""; if($str_len < $startdd + $slen || $slen==0) $slen = $str
-
标题过长使用javascript按字节截取字符串
做为一个前端开发人员在网页展示中经常会碰到,标题过长,需要截取字符串,用CSS的实现的话各种兼容问题,各种坑. 让后台程序截一下,又各种推托,让后台按字节截一下更是和要了后台老命一样,最后可能只会安字符长度给你截一下,最后不好看,对不齐,还是回头整CSS.调兼容: 有以上有感触的前端同学默默点个赞吧. 最近接触一个项目,后台只提供接口(json),所有页面的数据渲染,数据绑定都都交给了前端.终于,不考虑SEO,页面所有的主动权到偶的手中了,不经意间就碰到字节截取老问题了. 网络上流传一个Java
-
PHP截取中文字符串的问题
以下代码试用于GB2312编码,截取中文字符串是PHP中一个头疼的问题,解决方法是根据值是否大于等于128来判断是否是双字节字符,以避免出现乱码的情况.但中英文混合.特殊符号等问题总是存在,现在写一个比较全面的,仅供参考: 程序说明: 1. len 参数以中文字符为标准,1len等于2个英文字符,为了形式上好看些 2. 如果将magic参数设为false,则中文和英文同等看待,取绝对的字符数 3. 特别适用于用htmlspecialchars()进行过编码的字符串 4. 能正确处理GB2312中
-
php自定义截取中文字符串-utf8版
先说明:网上目前有很多这个问题的代码,但是很多都是复制粘贴,没有自己实践,而且代码有逻辑问题,下面的代码由我自己编写. 话不多说 /** * 该函数是对于utf8编码 * @author 2582308253@qq.com * @param string $str * @param int $start * @param int $length * @return string * @copyright 2017年2月27日下午1:46:10 */ function gbsubstr2($str
-
java按字节截取带有汉字的字符串的解法(推荐)
由于接口使用的oracle字段长度为固定字节数,然后传进来的字符串估计比数据库字段的总字节数要大,那么截取小于数据库字节数的字符串. 自己参考网上的例子,整了个递归调用就可以了,因为截取的字符字节长度必须小与数据库的字节长度,即如果最后一个字符为汉字,那么只能去掉往前截取. /** * 判断传进来的字符串,是否 * 大于指定的字节,如果大于递归调用 * 直到小于指定字节数 ,一定要指定字符编码,因为各个系统字符编码都不一样,字节数也不一样 * @param s * 原始字符串 * @param
-
PHP实现截取中文字符串不出现?号的解决方法
本文实例讲述了PHP实现截取中文字符串不出现?号的解决方法.分享给大家供大家参考,具体如下: 当PHP截取中英文混合字符串时,最后一个汉字经常被拆成两半,例:截取字符串的前18个字 <?php $text = "1欢迎访问sina新浪播客"; $value = substr($text, 0, 18); echo $value."<BR>"; ?> 输出为结果为: 1欢迎访问新浪?BR> 于是写了以下这段代码,判断如果中英文混合字符串中
-
用javascript实现截取字符串包含中文处理的函数
1.substring 方法 定义和用法 substring 方法用于提取字符串中介于两个指定下标之间的字符. 语法 stringObject.substring(start,stop) 参数 描述 start 必需.一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置. stop 可选.一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1.如果省略该参数,那么返回的子串会一直到字符串的结尾. 返回值 一个新的字符串,该字符串值包
-
php截取中文字符串函数实例
本文实例讲述了php截取中文字符串函数.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <?php //中文字符串截取 function substr_zh($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][\x8
-
Go语言按字节截取字符串的方法
本文实例讲述了Go语言按字节截取字符串的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: // 按字节截取字符串 utf-8不乱码 func SubstrByByte(str string, length int) string { bs := []byte(str)[:length] bl := 0 for i:=len(bs)-1; i>=0; i-- { switch { case bs[i] >= 0 &
-
php中计算中文字符串长度、截取中文字符串的函数代码
在PHP中,我们都知道有专门的mb_substr和mb_strlen函数,可以对中文进行截取和计算长度,但是,由于这些函数并非PHP的核心函数,所以,它们常常有可能没有开启.当然,如果是用的自己的服务器,则只要在php.ini中开启即可.如果是用的虚拟主机,而服务器又没有开启这方面的函数的话,那就需要我们自己写出点适合咱国情的函数来了. 以下几个函数用起来颇为顺手的.不过要知道,得在utf-8环境下使用. 复制代码 代码如下: header('Content-type:text/html;cha
随机推荐
- css滤镜效果(一)
- 拒绝黑客之网络安全三部曲
- java去掉html标签 必须首先去掉双引号的正则
- 无法识别的属性“type”+IIS没有Asp.net配置选项的解决方法
- zf框架db类的分页示例分享
- PHP开发框架kohana3 自定义路由设置示例
- python中pandas.DataFrame的简单操作方法(创建、索引、增添与删除)
- windows下mysql数据库主从配置教程
- mysql 复制过滤重复如何解决
- Django中的Ajax
- Vue 2.0的数据依赖实现原理代码简析
- html+js+php一次原始的Ajax请求示例
- SpringBoot之Controller的使用详解
- 详解Python中contextlib上下文管理模块的用法
- 关于图片验证码设计的思考
- VSFTP 两招帮你提高FTP服务器的安全性
- C#拼图游戏编写代码(2)
- Android编程绘制抛物线的方法示例
- Android LayoutInflater深入分析及应用
- java实现一个简单的网络爬虫代码示例