PHP 字符截取 解决中文的截取问题,不用mb系列

yipeiwu_com5年前PHP代码库
复制代码 代码如下:

function Cut_string($string, $start ,$sublen, $extstring='...', $code = 'UTF-8') {//Cut_string开始
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)).$extstring;
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.= $extstring;
return $tmpstr;
}
} //Cut_string结束

相关文章

PHP、Nginx、Apache中禁止网页被iframe引用的方法

可以使用php或nginx等添加X-Frame-Options header来控制frame权限X-Frame-Options有三个可选的值: DENY:浏览器拒绝当前页面加载任何Fra...

PHP rawurlencode与urlencode函数的深入分析

问题:2个函数都是针对字符串转义使其适合做文件名。该用哪个?哪个更标准? 结论:rawurlencode遵守是94年国际标准备忘录RFC 1738,urlencode实现的是传统做法,和...

PHP中list方法用法示例

本文实例讲述了PHP中list方法用法。分享给大家供大家参考,具体如下: <?php function small_numbers() { return array...

php pki加密技术(openssl)详解

复制代码 代码如下:<?php//pki加密//使用pki加密需要开启 openssl扩展//php.ini extension = php_openssl.dll扩展/*pki模...

Linux php 中文乱码的快速解决方法

在ubuntu下php网页输出乱码,在不涉及数据库编码的情况下: 修改“/etc/php5/apache2/php.ini”将 default_charset = "iso-8859-1...