php下关于中英数字混排的字符串分割问题_php技巧

在网上找了一点时间,发现都不怎样。
后来就自己想了个办法,算是原创吧。
只是用截取加替换的功能。

复制代码 代码如下:

function smssubstr($string, $length) {
if(strlen($string) <= $length) {
return $string;
}
$strcut = '';
for($i = 0; $i < $length; $i++) {
$strcut .= ord($string[$i]) > 127 ? $string[$i].$string[++$i] : $string[$i];
}
return $strcut;
}
for($i=1; $i<=$smsnum; $i++){
${'smscontent'.$i} = smssubstr($message,$smsper);
$message = str_replace(${'smscontent'.$i},"",$message);
}

时间: 2024-09-22 21:30:23

php下关于中英数字混排的字符串分割问题_php技巧的相关文章

php中英数字混排的字符串分割代码

function smssubstr($string, $length) { if(strlen($string) <= $length) { return $string; } $strcut = ''; for($i = 0; $i < $length; $i++) { $strcut .= ord($string[$i]) > 127 ? $string[$i].$string[++$i] : $string[$i]; } return $strcut; } for($i=1; $

Php中英数字混排的字符串分割实现实例

要用到短信平台的缘故,短信每条又有字数的限制,而短信平台的服务端又不会自己分析. 短信平台的后台会自己分割,但api却有没这个功能. 在网上找了一点时间,发现都不怎样. 后来就自己想了个办法,算是原创吧. 只是用截取加替换的功能. function smssubstr($string, $length) { if(strlen($string) <= $length) { return $string; } $strcut = ''; for($i = 0; $i < $length; $i+

PHP中英数字混排字符串的截取

 代码如下 复制代码 function smssubstr($string, $length) {  if(strlen($string) <= $length) {   return $string;   }  $strcut = '';  for($i = 0; $i < $length; $i++) {   $strcut .= ord($string[$i]) > 127 ? $string[$i].$string[++$i] : $string[$i];  }  return

PHP中preg_match函数正则匹配的字符串长度问题_php技巧

项目中,用preg_match正则提取目标内容,死活有问题,代码测得死去活来. 后来怀疑PHP 的preg_match有字符串长度限制,果然,发现"pcre.backtrack_limit "的值默认只设了100000. 解决办法:ini_set('pcre.backtrack_limit', 999999999); 注:这个参数在php 5.2.0版本之后可用. 另外说说关于:pcre.recursion_limit pcre.recursion_limit是PCRE的递归限制,这个

php中支持多种编码的中文字符串截取函数!_php技巧

支持多种编码的中文字符串截取函数!   复制代码 代码如下: /*     * @todo 中文截取,支持gb2312,gbk,utf-8,big5      *     * @param string $str 要截取的字串     * @param int $start 截取起始位置     * @param int $length 截取长度     * @param string $charset utf-8|gb2312|gbk|big5 编码      * @param $suffix

asp.net 电话 手机 中英 数字验证控件

asp教程.net 电话 手机 中英 数字验证控件 1 对手机号码的验证:^1[0-9]d{9}$,之前使用的是:/^0{0,1}(13[4-9]|15[7-9]|15[0-2])[0-9]{8}$/, 编辑部在使用的时提出问题:怎么189的号不能添加啊,我一看,正则表达式没有189的号,然后跑去找一个资历老一点的同事,他给我的正则是:d{11},我一看这个验证不对啊!只能保证输入的是11位数字,格式什么的就没限制了,然后自己改了下,现在还没出现什么问题 2 只输入中文或英文:[u4e00-u9

Word 2007中的纵横混排在哪

Word 2007中的纵横混排在哪 在Word2007中找了好久都没找到纵横混排这个菜单,请问是不是Word2007没有这个功能呢? 当然不是的,word2007的"开始"选项卡里"段落"组中有一个"中文版式"项,就是一个大写的A上面带左右两个箭头的图标 那里面有一个"纵横混排". 图 Word2007"纵横混排"

PHP开发中常用的字符串操作函数_php技巧

1,拼接字符串 拼接字符串是最常用到的字符串操作之一,在PHP中支持三种方式对字符串进行拼接操作,分别是圆点.分隔符{}操作,还有圆点等号.=来进行操作,圆点等号可以把一个比较长的字符串分解为几行进行定义,这样做是比较有好处的. 2,替换字符串 在PHP这门语言中,提供了一个名字叫做substr_replace()的函数,该函数的作用可以快速的完成扫描和编辑文本内容较多的字符串替换功能.他的语法格式: mixed substr_replace(mixed $string,string $repl

PHP中一些可以替代正则表达式函数的字符串操作函数_php技巧

0x01:根据预定义的字符对字符串进行词法分析 复制代码 代码如下: <?php /*  * 在处理大量信息时,正则表达式函数会使速度大幅减慢.应当在需要使用正则表达式解析比较复杂的字符串时才能使用这些函数.如果要解析简单的表达式,还可以采用很多可以显著加快处理过程的预定义函数.  */ /*  * 根据预定义的字符对字符串进行词法分析  * strtok()函数根据预定义的字符列表来解析字符串.其形式为:  * string strtok(string str,string tokens)