标签 字符串 下的文章

php截取中文字符串的两种方式


直接上源码。代码里面有解释,适用于UTF-8编码模式

$str的字符个数,造成无谓的while循环,($offset<$length限定)
function utf8sub($str,$len){
    if($len<=0){
        return ;
    }
    $res="";
    $offset=0;
    $chars=0;
    $length=strlen($str);
    while($chars<$len && $offset<$length){
    
        $hign=decbin(ord(substr($str,$offset,1)));
            if(strlen($hign)<8){
                $count=1;
            }elseif(substr($hign,0,3)=="110"){
                $count=2;
            }elseif(substr($hign,0,4)=="1110"){
                $count=3;
            }elseif(substr($hign,0,5)=="11110"){
                $count=4;
            }elseif(substr($hign,0,6)=="111110"){
                $count=5;
            }elseif(substr($hign,0,7)=="1111110"){
                $count=6;
            }
        
        $res.=substr($str,$offset,$count);
        $offset+=$count;
        $chars+=1;
        
        
    }
    return $res;
}
function utf8sub1($str,$len){
    $chars=0;
    $res="";
    $offset=0;
    $length=strlen($str);
    while($chars<$len && $offset<$length){
        $hign=decbin(ord(substr($str,$offset,1)));
        if(strlen($hign)<8){
            $count=1;
        }elseif($hign & "11100000"=="11000000"){
            $count=2;
        }elseif($hign & "11110000"=="11100000"){
            $count=3;
        }elseif($hign & "11111000"=="11110000"){
            $count=4;
        }elseif($hign & "11111100"=="11111000"){
            $count=5;
        }elseif($hign & "11111110"=="11111100"){
            $count=6;
        }
        $res.=substr($str,$offset,$count);
        $chars++;
        $offset+=$count;
    }
    return $res;
}
$a="一二ah三四hdj";
echo utf8sub($a,5);
?>

PHP字符串按一定规律补齐特定长度


我们在进行字符串操作时经常需要把字符串补齐到一定的长度。例如在进行取随机数 rand(100,999999) 时。小于100000的数字都没有6位字符,给后面的程序带来一些不便。使用str_pad()函数就可以解决这个问题了

str_pad()函数的定义和用法:
把字符串填充为指定的长度。

语法:
str_pad(string,length,pad_string,pad_type)参数 描述
string 必需。规定要填充的字符串。
length 必需。规定新字符串的长度。如果该值小于原始字符串的长度,则不进行任何操作。
pad_string 可选。规定供填充使用的字符串。默认是空白。
pad_type 可选。规定填充字符串的那边。

pad_type可选的参数;
•STR_PAD_BOTH - 填充到字符串的两头。如果不是偶数,则右侧获得额外的填充。
•STR_PAD_LEFT - 填充到字符串的左侧。
•STR_PAD_RIGHT - 填充到字符串的右侧。这是默认的。

例子程序:

  

结果:
假如随机到5555时,自动补成005555
如果是STR_PAD_LEFT则为555500
如果是STR_PAD_BOTH则为055550
如果是STR_PAD_BOTH并随机到888,则为088800


php对字符串操作常用的几个函数/方法


php对字符串操作常用的几个函数/方法

1. str_replace("ABC","123",$str)
将字符串$str中的ABC替换成123
例如:

$str="0ABC4";echo str_replace("ABC","123",$str);

得到结果"01234"

2. strpos($str,'ABC')
查找ABC在字符串中的位置,从0开始
例如:

$str="0ABC4";echo strpos($str,'ABC');

得到结果为1

扩展应用:也可以用于查找"ABC"是否在$str中存在
例如:

$str="0ABC4";echo strpos($str,'ABC')>-1;

得到结果为1,即true,即存在
例如:

$str="01234";echo strpos($str,'ABC')>-1;

得到结果为0,即flase,即不存在

3. substr($str,0,1);
截取字符串$str,从0位开始截取1位
例如:

$str="0ABC4";echo substr($str,0,2);

得到结果"0A"
例如:

$str="0ABC4";echo substr($str,2,3);

得到结果"BC4"

可结合方法strpos截取特定字符以后的字符串

4.explode("ABC",$str);
将字符串$str以"ABC"为标示截取成数组
例如:

$str="0ABC445ABC555ABCB";print_r(explode("ABC",$str));

得到结果Array ( [0] => 0 [1] => 445 [2] => 555 [3] => B )
5.preg_match_all("/./us", $str, $array);
将字符串$str以正则表达式/./us为标示拆分为数组保存到$array
使用方法与explode类似,本人正则表达式比较弱就不举例了
6.strip_tags($str,"")
去除$str中的html标签,
标签除外,参数二为空时去除所有html标签
例如:

$str="
  • APIEYE
  • ";echo strip_tags ($str,"");

    得到结果"APIEYE"
    例如:

    $str="
  • APIEYE
  • ";echo strip_tags ($str);

    得到结果"APIEYE"
    7.strlen($str)
    相比大家都知道,得到字符串的长度,就不多说了。

    目前我在平时常用的就这些,再发现其他常用方法到时候再更新