实时搜索: php 汉字占几个字符

php 汉字占几个字符

641条评论 2250人喜欢 2086次阅读 298人点赞
$str = "[尺码参考]均码 适合身高:155-175cm/胸围:70-90cm/腰围:65-75cm/臀围:80-93cm
[厚度指数]稍薄";需要匹配到[尺码参考]和[厚度指数]之间的中文字符串 , 正常的话UTF-8汉字是占据三个字节 字母和数字是一个字节
我想写个方法 比如$str="我日1啊";
给这个方法的参数为4的话就截取我日 5就我日1
我自己写了个方法
function utf_substr($text,$length){

$k=0;
for($i=0;$i<$length;$i++){

怎样将php里的汉字字符串分割成单个字符: for($i=0;$i<strlen($string);$i++){
echo $string{$i};
if($i%9 == 8){
echo "<br/>";
}
}
试试,应该可以用的。

希望回答对你有帮助,如果有疑问,请继续追问
答题不易,互相理解,您的采纳是我前进的动力,感谢您。

php匹配特定的中文字符串: <?php
preg_match('/\[尺码参考\](.+?)\[厚度指数\]/',$str,$match);
print_r($match);
?>
http://hi-docs.com/php/preg_match.html

php 截取UTF-8中文字符串问题: 试一试这个函数:
//function :截取中文字符
function zh_substr($string, $start, $length)
{
if(strlen($string)>$length){
$str=null;
$len=$start+$length;
for($i=$start;$i<$len;$i++){
if(ord(substr($string,$i,1))>0xa0){
//ord()函数返回字符的 ASCII (美国国家标准交换码) 序数值。本函数和 chr() 函数相反。
$str.=substr($string,$i,2);
$i++;
}else{
$str.=substr($string,$i,1);
}
}
return $str.'...';
}else{
return $string;
}
}

PHP字符串替换问题,把随机的姓名后面的一个汉字换成一个”*”,两个就是”**”,哪位高人指点一下.在线等~: 写了个函数给你,我测试了的
<?php
function cut_str($str,$len) {
$j=strlen($str)/2-1;
$m="";
for($i=1;$i<=$j;$i++){$m=$m."*";}
$n = 0;
$tempstr = '';
for ($i=0; $i<$len; $i++) {
if (ord(substr($str,$n,1)) > 224) {
$tempstr .= substr($str,$n,3);
$n += 3;
$i++;
} elseif (ord(substr($str,$n,1)) > 192) {
$tempstr .= substr($str,$n,2);
$n += 2;
$i++;
} else {
$tempstr .= substr($str,$n,1);
$n ++;
}
}
return $tempstr.$m;
}

?>

<?php echo cut_str("卓文君",1); ?>
<?php echo "<br/>"; ?>
<?php echo cut_str("司马相如",1); ?>

网址中带有中文字符的php正则表达式: 在中文字符出现的地方用[^`]+表示,你也可以用其它字符代替“`”,只要中文字符内处不可能出现的字符就行。
意思是:不是“`”字符,除了“`”的一切字符,包括中文,重复一次或多次。
为什么要这样表示中文字符的集合呢?
可能是因为在正则表达式中没有表示中文字符的字符类或集合或范围。甚至[[:print:]]+都不行!
测试如下:
<?php
$str='ffdjsfjshgfhfg<12><模式>d<括号内的部分>f符类中fs<字符类中可tryrt用的元字符为>:sjssdfsfs,sfsfjksjk,<iogfds12346789>括号内的部分';

$b='[<][^<]+[>]';//有可能出现中文字符的地方用[^<]+表示
//$b='[<][[:print:]]+[>]';

while(eregi($b,$str,$array))
{
$str_h=str_replace("<","<",$array[0]);
$str_h=str_replace(">",">",$str_h);

echo $str_h."</br>";
$str=str_replace($array[0],'',$str);
}//From J.L
?>

php有没有一种函数能从一个字符串中截取一段出来啊。: substr()和mb_substr()的用法一样,区别只是mb_substr()可以针对中文,就是中英文的字符长度问题,英文占用一个字符,一个汉字占用两个字符。

substr(string,start,length)
其中start的参数

正数 - 在字符串的指定位置开始
负数 - 在从字符串结尾的指定位置开始
0 - 在字符串中的第一个字符处开始
strstr() 函数搜索一个字符串在另一个字符串中的第一次出现
配合这几个函数就可以做到很强大的截取功能。

php中解析带中文字符的url怎么做: <?php //GB2312的Encode echo urlencode("中文-_. ")."\n"; //%D6%D0%CE%C4-_.+ echo urldecode("%D6%D0%CE%C4-_. ")."\n"; //中文-_. echo rawurlencode("中文-_. ")."\n"; //%D6%D0%CE%C4-_.%20 echo rawurldecode("%D6%D0%CE%C4-_. ")."\n"; //中文-_. ?>

如何利用PHP来截取一段中文字符串而不出现乱码: /*
功能:截取全角和半角混合的字符串以避免乱码
参数:
$str_cut 需要截断的字符串
$length  允许字符串显示的最大长度

*/

function substr_cut($str_cut,$length = 30){ 

if (strlen($str_cut) >; $length){
  for($i=0; $i < $length; $i++)
   if (ord($str_cut[$i]) >; 128) $i++;
  $str_cut = substr($str_cut,0,$i) . "...";
}
return $str_cut;
}

说明: 
程序的关键语句是: 

for($i=0; $i < $length; $i++)
if (ord($str_cut[$i]) >; 128) $i++;

$str_cut = substr($str_cut,0,$i) . "...";
如果字符的ASCII码大于128,说明当前字符和下一个字符是属于一个汉字的。 
则,$i++ 跳过对下一个字符的判断。 
再结合循环中的 $i++ ,实际上,当遇到一个汉字时,$i 就会加 2 ,从而正确的跳过汉字。 
最终实现的效果是,$i 变量指向的要么是半角的字符,要么是全角汉字的首字符,不会指向 
全角汉字的第二个字符,所以,当$i >;= $length 时,循环结束,使用 
$str_cut = substr($str_cut,0,$i) . "..."; 截取字符时自然也就不会出现乱码了。 


本人在写一个程序时需要利用PHP从一段字符串中截取指定长度的一段字符下来。以前在写ASP的时候,参考动网的程序写过类似的程序,不过,还没用PHP写过。 

想偷懒,看有不有现成的代码可以用。于是,在GOOGLE中输入:PHP 截断字符 后查找到一段代码。

  • 昆明签证在哪里办理

    lol进不去游戏,换个号能进: 进微信公众号腾讯游戏安全中心,选冻结解冻选项,此时你看到的应该是英雄联盟哪里是打勾,去掉就行了,可能是你之前设置忘记取消了,我试了,真的是这么回事,! ...

    805条评论 1259人喜欢 2152次阅读 996人点赞
  • excel几个工作表合并

    英雄联盟凯尔钢铁之翼跳舞来源于哪首歌的舞蹈: http://t.178.com/resource/show?token32=588a1d07eabe52af4ffcee0bf96a588a ...

    642条评论 4003人喜欢 1152次阅读 724人点赞
  • 202和市妇婴哪个好

    我的英雄联盟被封号3年多 怎样解封 我什么都没有干: 什么都没干,怎么被封号。肯定是挂机被举报了吧。去找腾讯客服问问吧(有那么点几率会给你解封)。 ...

    719条评论 4649人喜欢 3397次阅读 361人点赞
  • meid是什么意思

    郁闷了,lol首胜图标是亮的,但为什么拿不到150奖励呢???大神快帮帮忙啊!!!讲仔细点,解决了就给分: 人机3V3没奖励吧应该,这是一种情况如果你拿到了首胜,在点一下别人的资料,然后在看你的资料,就显示首胜可用,另一种如果把系统时间调错了(快了一天)也是显示可用,这也是一种这几种情况都没奖励 ...

    515条评论 4923人喜欢 1731次阅读 741人点赞
  • 54的因数有哪些

    跪求小说名字,男主是医生,女主后来开了美容院,儿子是明星: 结婚十年—枕边人 作者简思 ...

    780条评论 1926人喜欢 3077次阅读 896人点赞
  • p7华为多少钱

    英雄联盟中什么可以进行传送英雄: 你好 自带传送技能的 有卡牌大师 传送到一个目的地(可以拿来逃跑)河流之王 你可以单人进行传送到一个目的地 如果旁边有友方英雄可以右键你 你和他一起传送到你选择的 地方 也可以单人传送暮光之眼 传送到友军身上并且给予...

    799条评论 6589人喜欢 5992次阅读 624人点赞
  • gta5怎么捡东西

    小白虎一只多少元: 五千多万一只白老虎 ...

    252条评论 2663人喜欢 1065次阅读 735人点赞