喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 喜悦证交所 | 帮助

RSS 订阅当前论坛  

[北京]代朋友公司招聘PHP高级程序员多名

上一主题 下一主题
     
标题: 完美截取子字符串,支持中文  
 
misterwangbo (misterwangbo)
中级会员
Rank: 3Rank: 3
中级会员



UID 26033
精华 2
积分 226
帖子 186
金钱 206 喜悦币
威望 20
人脉 0
阅读权限 30
注册 2004-2-8
状态 离线
完美截取子字符串,支持中文



<?php
//截取子字符串,支持中文
//每个中文汉字看成一个字符
//echo string_substring("1A辽2B宁3C省4D抚5E顺6F市7G新8H宾9I县",4,5);
//会返回B宁3C省,位置从0开始
function string_substring($string,$start,$length)
{
    
$countstart=0;
    
$countlength=0;
    
$printstring="";
    for(
$i=0;$i<strlen($string);$i++)
    {
        while(
$countstart!=$start)
        {
            
$countstart++;
            if(
ord(substr($string,$i,1))>128)
            {
                
$i+=2;
            }
            else
            {
                
$i++;
            }
        }
        while(
$countlength!=$length)
        {
            
$countlength++;
            if(
ord(substr($string,$i,1))>128)
            {
                
$printstring.=substr($string,$i,2);
                
$i+=2;
            }
            else
            {
                
$printstring.=substr($string,$i,1);
                
$i++;
            }
        }
    }
    return 
$printstring;
}
echo 
string_substring("1A辽2B宁3C省4D抚5E顺6F市7G新8H宾9I县",4,5);
?>
2004-5-14 10:20 AM#1
查看资料  发短消息  顶部
 
grow-easy\ (grow-easy\)
金牌会员
Rank: 6Rank: 6
高级会员


UID 18157
精华 2
积分 1261
帖子 1221
金钱 1241 喜悦币
威望 20
人脉 0
阅读权限 70
注册 2003-1-24
状态 离线
[推荐阅读] 幼稚问题?怎么不能换行
2004-5-14 10:25 AM#2
查看资料  发短消息  顶部
 
xi9527 (xi9527)
金牌会员
Rank: 6Rank: 6
高级会员



UID 24240
精华 0
积分 1152
帖子 1145
金钱 1152 喜悦币
威望 0
人脉 0
阅读权限 70
注册 2003-10-30
状态 离线
[推荐阅读] 关于代码内嵌的问题
顶!
2004-5-14 10:32 AM#3
查看资料  发短消息  QQ  顶部
 
双心 (双心)
注册会员
Rank: 2
中级会员



UID 26969
精华 0
积分 186
帖子 186
金钱 186 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2004-3-15
来自 石门土著
状态 离线
[推荐阅读] 关于多条件查询
呵呵,这个东西早就有了!!!
2004-5-14 10:43 AM#4
查看资料  访问主页  发短消息  QQ  顶部
 
xiaotao5 (xiaotao5)
论坛元老
Rank: 8Rank: 8
我要当老大


UID 20091
精华 0
积分 35579
帖子 390
金钱 35579 喜悦币
威望 0
人脉 0
阅读权限 90
注册 2003-5-23
来自 浙江
状态 离线
[推荐阅读] 急聘!!!
我要的是把中文看成两个字符的。
2004-5-14 11:34 AM#5
查看资料  访问主页  发短消息  顶部
 
mgirl (mgirl)
高级会员
Rank: 4
资深会员



UID 26020
精华 0
积分 725
帖子 723
金钱 725 喜悦币
威望 0
人脉 0
阅读权限 50
注册 2004-2-7
状态 离线
[推荐阅读] 我的邮件系统开通
http://www.iitong.com/php/html/php/skill/2004-03/01/151813.html
2004-5-14 11:54 AM#6
查看资料  发短消息  顶部
 
misterwangbo (misterwangbo)
中级会员
Rank: 3Rank: 3
中级会员



UID 26033
精华 2
积分 226
帖子 186
金钱 206 喜悦币
威望 20
人脉 0
阅读权限 30
注册 2004-2-8
状态 离线
[推荐阅读] 一群debug狂
想把中文看成两个字符,改成
            if(ord(substr($string,$i,1))>128)
            {
                $i++;
            }
不过那样的话中文看成两个字符,英文看成一个字符,这样会出乱子的,还是把中文看成一个字符比较好
2004-5-14 04:05 PM#7
查看资料  发短消息  顶部
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 




Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.025686 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP