PHP操作数组和字符串常用函数

2018-09-0709:50:14后端程序开发Comments3,056 views字数 11294阅读模式
1.操作数组的函数

range(起始值,结束值)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

生在一个指定范围的地址文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

$array1 = range(10,20); //生成一个10-20的数组
print_r($array1); 
//Array ( [0] => 10 [1] => 11 [2] => 12 [3] => 13 [4] => 14 [5] => 15 [6] => 16 [7] => 17 [8] => 18 [9] => 19 [10] => 20 ) 

echo '<br>';

$array2 = range('a','f'); //生成一个a-f的数组
print_r($array2);
//Array ( [0] => a [1] => b [2] => c [3] => d [4] => e [5] => f ) 

echo '<br>';

$array3 = range('F','A'); //生成一个F-A的数组
print_r($array3);
//Array ( [0] => F [1] => E [2] => D [3] => C [4] => B [5] => A ) 
复制代码

array_rand(数组,随机取出元素的个数)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

  • 随机取出数组内元素,返回随机数组的下标
  • 如果随机取出1个,返回整型下标
  • 如果随机取出多个,返回整型下标数组
$array1 = range(10,20);
print_r(array_rand($array1,1)); //随机输出数组中的1位 3
echo '<br>';
print_r(array_rand($array1,4)); //随机输出数组中的4位 Array ( [0] => 1 [1] => 6 [2] => 7 [3] => 8 ) 
echo '<br>';
复制代码

shuffle(数组)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

打乱数组(打乱成功返回true,打乱失败返回false)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

$array1 = range(10,20);
print_r($array1);
echo '<br>';
shuffle($array1); //打乱数组
print_r($array1);
echo '<br>';
print_r($array1);
echo '<br>';

// Array ( [0] => 10 [1] => 11 [2] => 12 [3] => 13 [4] => 14 [5] => 15 [6] => 16 [7] => 17 [8] => 18 [9] => 19 [10] => 20 ) 
// Array ( [0] => 14 [1] => 16 [2] => 11 [3] => 10 [4] => 20 [5] => 19 [6] => 12 [7] => 13 [8] => 15 [9] => 17 [10] => 18 ) 
// Array ( [0] => 14 [1] => 16 [2] => 11 [3] => 10 [4] => 20 [5] => 19 [6] => 12 [7] => 13 [8] => 15 [9] => 17 [10] => 18 ) 
复制代码

is_array()文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

判断变量是否是数组类型文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

$array1 = range(10,20);
if(is_array($array1)){
    echo '是数组';
}else{
    echo '不是数组';
}
复制代码

array_search()文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

在数组中搜索给定的值,如果成功则返回相应的键名,如果找不到返回false文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

$array = range(10,20);
echo array_search(15,$array),'<br>'; //5
var_dump(array_search(30,$array)); //bool(false)
复制代码
2.操作数组键值函数

array_keys()和array_values()文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

  • array_keys($array):返回数组中的所有键名
  • array_values($array):返回数组中的所有值
 $array = range('A','F');
$key = array_keys($array);
$value = array_values($array);
print_r($key); echo '<br>';
print_r($value); echo '<br>';
// Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 ) 
// Array ( [0] => A [1] => B [2] => C [3] => D [4] => E [5] => F ) 
复制代码

array_combine(键数组,值数组)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

创建一个数组,用键数组的值做键名,值数组的值做值文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

$key = array('name','sex','age');
$value = array('李白','男','18');
$array = array_combine($key,$value);
print_r($array); echo '<br>';
//Array ( [name] => 李白 [sex] => 男 [age] => 18 ) 
复制代码

如果键数组和值数组的元素个数不一样,返回false文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

in_array(查找的值,数组)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

作用:检查数组中是否包含某个值,返回bool类型文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

$array = array('name' => '李白', 'sex' => '男', 'age' => '18');
var_dump(in_array('18',$array)); echo '<br>'; //bool(true) 
复制代码

查找数组的值:区分大小写,不区分数据类型文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

array_key_exists(键,数组)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

检查键名或索引是否在数组中文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

$array = array('name' => '李白', 'sex' => '男', 'age' => '18');
var_dump(array_key_exists('sex',$array)); echo '<br>'; //bool(true) 
var_dump(array_key_exists('sexs',$array)); echo '<br>'; //bool(false) 
复制代码

isset(变量名)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

检测变量是否设置,并且设置的值不为null文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

//array_key_exists()和isset()的区别

$array = array('name' => '李白', 'sex' => '男', 'age' => '18', 'add' => NULL);
var_dump(array_key_exists('name',$array),isset($array['name'])); echo '<br>'; //bool(true) bool(true) 
var_dump(array_key_exists('add',$array),isset($array['add'])); echo '<br>'; //bool(true) bool(false) 
复制代码
3.数组连接和字符串分割函数

将数组的值连接成字符串:implode()文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

别名是join(),将数组的值连接成字符串文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

$array1 = array('李白','男','18',NULL);
$array2 = implode('-',$array1); //将数组的值连接成字符串
echo $array2,'<br>'; //李白-男-18-
复制代码

将字符串分割成数组: explode()文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

$array2 = '李白-男-18-';
$array3 = explode('-',$array2);
print_r($array3); echo '<br>'; //Array ( [0] => 李白 [1] => 男 [2] => 18 [3] => ) 
复制代码
4.数组运算函数

数组合并: array_merge()文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

$array1 = array_merge(range('a','f'),range('A','F'),range(0,9));
print_r($array1); 
//Array ( [0] => a [1] => b [2] => c [3] => d [4] => e [5] => f [6] => A [7] => B [8] => C [9] => D [10] => E [11] => F [12] => 0 [13] => 1 [14] => 2 [15] => 3 [16] => 4 [17] => 5 [18] => 6 [19] => 7 [20] => 8 [21] => 9 ) 
复制代码

数组合并时候下标冲突,按如下规则解决:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

  • 如果是字符串下标,后面的元素将前面的元素覆盖
  • 如果在整数下标,重新建立下标索引
$array1 = array('name'=>'李白','sex'=>'男','age'=>'18','ctiy'=>'广州',0=>'lb');
$array2 = array('name'=>'杜甫','sex'=>'女','age'=>'28',0=>'dp');
$array3 = array_merge($array1,$array2);
print_r($array3); 
//Array ( [name] => 杜甫 [sex] => 女 [age] => 28 [ctiy] => 广州 [0] => lb [1] => dp ) 
echo '<br>';
复制代码

数据的差集:array_diff(数组1,数组2,数组3,…)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

$array1 = range(10,20);
$array2 = range(0,12);
$array3 = range(18,30);
print_r(array_diff($array1,$array2)); echo '<br>';
//Array ( [3] => 13 [4] => 14 [5] => 15 [6] => 16 [7] => 17 [8] => 18 [9] => 19 [10] => 20 ) 

print_r(array_diff($array1,$array2,$array3)); echo '<br>';
//Array ( [3] => 13 [4] => 14 [5] => 15 [6] => 16 [7] => 17 )
//下标不会娈,和下标没关系
复制代码

数组相交:array_intersect(数组1,数组2,数组3,…) 数组的交集结果中,下标使用的是第一个数组的下标。 取两个数组中一样的文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

$array1 = range(10,20);
$array2 = range(0,12);
$array3 = range(18,30);
print_r(array_intersect($array1,$array2)); echo '<br>';
//Array ( [0] => 10 [1] => 11 [2] => 12 ) 
print_r(array_intersect($array1,$array3)); echo '<br>';
//Array ( [8] => 18 [9] => 19 [10] => 20 ) 
复制代码
5.使用回调函数的函数

回调函数:计算机自己调用的函数,不需要手动调用。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

array_map('函数名','数组')文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

调用PHP自身的函数文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

$array1 = array(10,-20,-30,52);
$new_array1 = array_map('abs',$array1); //aba中PHP中自身的函数(绝对值)
print_r($new_array1); echo '<br>';
//Array ( [0] => 10 [1] => 20 [2] => 30 [3] => 52 ) 
复制代码

调用自定义函数文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

function fun($name){
    return '你好'.$name;
}
$array = array('呵呵','哈哈');
$new_array = array_map('fun',$array);
print_r($new_array); echo '<br>';
//Array ( [0] => 你好呵呵 [1] => 你好哈哈 ) 
复制代码
$array = array('呵呵','哈哈');
$new_array = array_map(function ($name){
    return '你好'.$name;
},$array);
print_r($new_array); echo '<br>';
//Array ( [0] => 你好呵呵 [1] => 你好哈哈 ) 
复制代码

array_map()支持一次处理多个数组,将所有数组中同位置的元素作为参数传递给回调函数文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

$php = array('68','54','78','62');
$MySQL = array('45','87','98','36');
function fun($php,$MySQL){
    return $php+$MySQL;
}
$new_array = array_map('fun',$php,$MySQL);
print_r($new_array); echo '<br>';
//Array ( [0] => 113 [1] => 141 [2] => 176 [3] => 98 ) 
复制代码

array_map()默认可以将多个数组的同位置的元素组成新数组文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

//null表示默认操作
$php = array('68','54','78','62');
$MySQL = array('45','87','98','36');
function fun($php,$MySQL){
    return $php+$MySQL;
}
$new_array = array_map(null,$php,$MySQL);
print_r($new_array); echo '<br>';
//Array ( [0] => Array ( [0] => 68 [1] => 45 ) [1] => Array ( [0] => 54 [1] => 87 ) [2] => Array ( [0] => 78 [1] => 98 ) [3] => Array ( [0] => 62 [1] => 36 ) ) 
复制代码

++array_map()只能处理值,不能处理键++文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

array_walk(数组,回调函数)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

作用:对数组中的每个元素的键值进行对调处理,类似于foreach循环文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

  • 如果回调函数是一个参数,则这个参数是值
  • 如果调用函数是两个参数,第一个是值,第二个是键
$array = array('name'=>'李白','sex'=>'男','age'=>'18','ctiy'=>'广州',0=>'lb');
function funs($value,$key){
    echo $key,'-',$value,'<br>';
}
function fun($key){
    echo $key,'<br>'; 
}
array_walk($array,'fun');
echo '<br><br>';
array_walk($array,'funs');

// 李白
// 男
// 18
// 广州
// lb

// name-李白
// sex-男
// age-18
// ctiy-广州
// 0-lb
复制代码
6.栈和队列
  • 栈和队列都属于数据结构
  • 栈是先进后出
  • 队列是先进先出
实现栈效果的函数
  • array_push(数组,入[栈|队列]的值) //类似追加
  • array_pop():出栈,将最尾部的元素弹出 //删除最后一个
$array = array();
array_push($array,'李白'); //入栈
array_push($array,'杜甫','白居易'); //入栈
print_r($array); echo '<br>'; //Array ( [0] => 李白 [1] => 杜甫 [2] => 白居易 )
array_pop($array); //出栈
print_r($array); echo '<br>'; //Array ( [0] => 李白 [1] => 杜甫 )
复制代码

++array_push()和array_pop()作用在于维护一个连续的存储空间;为新增加的元素重写下标(索引)++文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

实现队列效果的函数
  • array_shift():出队列,将队列中的第一个元素移除 //删除头
  • array_unshift():在数组的开头插入一个元素 //头插入
$array = array();
array_unshift($array,'李白'); //堆栈
array_unshift($array,'杜甫','白居易'); //堆栈
print_r($array); echo '<br>'; //Array ( [0] => 杜甫 [1] => 白居易 [2] => 李白 ) 
array_shift($array); //出栈
print_r($array); echo '<br>'; //Array ( [0] => 白居易 [1] => 李白 ) 
复制代码
7.数组排序函数

sort() :按值进行升序排列,不保持原来的键值关联文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

$list = array('a'=>10,'c'=>5,'b'=>12);
sort($list);
print_r($list); echo '<br>';
//Array ( [0] => 5 [1] => 10 [2] => 12 ) 
复制代码

rsort():按值进行降序排列,不保持原来的键值关联文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

$list = array('a'=>10,'c'=>5,'b'=>12);
rsort($list);
print_r($list); echo '<br>';
//Array ( [0] => 12 [1] => 10 [2] => 5 ) 
复制代码

asort():按值进行升序排列,保持原来的键值关联文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

$list = array('a'=>10,'c'=>5,'b'=>12);
asort($list);
print_r($list); echo '<br>';
//Array ( [c] => 5 [a] => 10 [b] => 12 ) 
复制代码

arsort():按值进行降序排列,保持原来的键值关联文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

$list = array('a'=>10,'c'=>5,'b'=>12);
arsort($list);
print_r($list); echo '<br>';
//Array ( [b] => 12 [a] => 10 [c] => 5 ) 
复制代码

ksort():按键进行升序排列文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

$list = array('a'=>10,'c'=>5,'b'=>12);
ksort($list);
print_r($list); echo '<br>';
//Array ( [a] => 10 [b] => 12 [c] => 5 ) 
复制代码

krsort():按键进行降序排列文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

$list = array('a'=>10,'c'=>5,'b'=>12);
krsort($list);
print_r($list); echo '<br>';
//Array ( [c] => 5 [b] => 12 [a] => 10 )  
复制代码

natsort():自然排序文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

$list = array('stu_3','stu_1','stu_15','stu_10','stu_260');
sort($list);
print_r($list); echo '<br>';
//按每一位数字分开比较排序
//Array ( [0] => stu_1 [1] => stu_10 [2] => stu_15 [3] => stu_260 [4] => stu_3 ) 
natsort($list);
print_r($list); echo '<br>';
//按整体数字比较排序
//Array ( [0] => stu_1 [4] => stu_3 [1] => stu_10 [2] => stu_15 [3] => stu_260 ) 
复制代码

usort():用户自定义排序文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

$stu = array(
    array('name'=>'李白','age'=>22,'score'=>65),
    array('name'=>'杜甫','age'=>12,'score'=>77),
    array('name'=>'白居易','age'=>8,'score'=>87),
    array('name'=>'王安石','age'=>32,'score'=>20),
);

function fun($stu1,$stu2){
    if($stu1['age']<$stu2['age'])
        return -1;
    elseif ($stu1['age']>$stu2['age'])
        return 1;
    else 
        return 0;
}
usort($stu,'fun');
echo '<pre>';
print_r($stu);
// Array
// (
//     [0] => Array
//         (
//             [name] => 白居易
//             [age] => 8
//             [score] => 87
//         )
//     [1] => Array
//         (
//             [name] => 杜甫
//             [age] => 12
//             [score] => 77
//         )
//     [2] => Array
//         (
//             [name] => 李白
//             [age] => 22
//             [score] => 65
//         )
//     [3] => Array
//         (
//             [name] => 王安石
//             [age] => 32
//             [score] => 20
//         )
// )
复制代码
8.字符串操作函数

[] 字符串可以理解成字符的集合,所以可以通过[]来访问。不能操作中文文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

$stu = 'abcdefg';
echo $stu[0],'<br>'; //a

$stu[2] = 'C';
echo $stu,'<br>'; //abCdefg
复制代码

strlen() 返回字符串长度,以字节为单位文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

$stu = 'abcdefg';
echo strlen($stu),'<br>'; //7

$str = '中文';
echo strlen($str),'<br>'; //6

//在gbk下一个汉字2个字节,在utf8下一个汉字3个字节。
复制代码

trim()、ltrim()、rtrim():去空白字符文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

  • trim():去字符串两边的把空格
  • ltrim():去字符串左边的空格
  • rtrim():去字符串右边的空格

strpos()文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

  • strpos():查找字符串首次出现的位置
  • strrpos():查找字符串最后一次出现的位置
$stu = 'abcdefga';
echo strpos($stu,'a'),'<br>'; //0
echo strrpos($stu,'a'),'<br>'; //7
复制代码

str_repeat():重复字符串文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

$word = 'hello!';
echo str_repeat($word,3),'<br>'; //hello!hello!hello!
复制代码

chr()、ord()文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

$num = ord('A'); //获取字符的Asc||码
echo $num,'<br>'; //65
echo chr($num),'<br>'; //将ASC||转成字符 A
复制代码

substr(字符串,开始位置,截取长度):截取字符串文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

$num = 'abcdef';
echo substr($num,1,3),'<br>'; //bck
echo substr($num,-3,2),'<br>'; //de
echo substr($num,-1,2),'<br>'; //f
//长度省略就截取到结尾
echo substr($num,1),'<br>'; //bcdef
echo substr($num,-4),'<br>'; //cdef
//长度为负表示后面有几个字符不截取
echo substr($num,1,-1),'<br>'; //bcde
echo substr($num,-4,-2),'<br>'; //cd
复制代码

strchr()、strrchr()文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

$num = 'abcdebf';
echo strchr($num,'b'),'<br>'; //bcdebf //从哪个字符开始往后截取
echo strrchr($num,'b'),'<br>'; //bf //从哪个字符最后一个开始往后截取
复制代码

str_replace():替换字符串文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

$num = '明日复明日,明日何其多';
echo str_replace('明日','今日',$num),'<br>'; //所有明日替换成今日:今日复今日,今日何其多

$array1 = array('明日','复','何其');
$array2 = array('一天','又','非常');
echo str_replace($array1,$array2,$num),'<br>';//一天又一天,一天非常多
复制代码

str_split():将字符串分割成数组文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

$str = 'abcdef';
print_r(str_split($str)); echo '<br>';
//Array ( [0] => a [1] => b [2] => c [3] => d [4] => e [5] => f )

print_r(str_split($str,2)); echo '<br>';
//Array ( [0] => ab [1] => cd [2] => ef ) 
复制代码

str_pad(待填充字符串,总位数,填充字符,填充位置) 填充字符串文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

$stuid = 12;
echo str_pad($stuid,4,'0'),'<br>'; //1200
echo str_pad($stuid,4,'0',STR_PAD_LEFT),'<br>'; //0012 在左边加
echo str_pad($stuid,4,'0',STR_PAD_BOTH),'<br>'; //0120 在两边加
复制代码

字符串大小写转换文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

echo strtolower('I AM A BOY'),'<br>'; //转换成小写
echo strtoupper('i am a boy'),'<br>'; //转换成小写
复制代码

nl2br():将字符串的换行转成文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

nl2br() //常用于文本域换行
复制代码

htmlspecialchars():将HTML字体转成实体文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

echo htmlspecialchars('<p>呵呵</p>'),'<br>'; //<p>呵呵</p>
复制代码

urlencode()、urldecode():url编码和解码文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

echo urlencode('明日复明日,明日何其多'),'<br>';//%E6%98%8E%E6%97%A5%E5%A4%8D%E6%98%8E%E6%97%A5%EF%BC%8C%E6%98%8E%E6%97%A5%E4%BD%95%E5%85%B6%E5%A4%9A
echo urldecode('%E6%98%8E%E6%97%A5%E5%A4%8D%E6%98%8E%E6%97%A5%EF%BC%8C%E6%98%8E%E6%97%A5%E4%BD%95%E5%85%B6%E5%A4%9A'),'<br>'; //明日复明日,明日何其多
复制代码
9.多字节字符串处理函数

PHP默认本身不支持多字节处理。要开启mb_扩展(multibytes). ==开启extension=php_mbstring.dll==文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

mb_strlen():获取字符串的长度文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

$str = '明日何其多';
echo mb_strlen($str),'<br>'; //15
echo mb_strlen($str,'utf-8'),'<br>'; //5
复制代码

mb_internal_encoding():设置/获取内部字符编码文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

$str = '明日何其多';
echo mb_internal_encoding(),'<br>'; //ISO-8859-1
echo mb_strlen($str),'<br>'; //15
echo mb_strlen($str,'utf-8'),'<br>'; //5
mb_internal_encoding('utf-8'); //设置PHP编码为utf-8
echo mb_internal_encoding(),'<br>'; //utf-8
echo mb_strlen($str),'<br>'; //5
复制代码

mb_strpos():查找字符串在另一个字符串中的位置文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

$str = '明日何其多';
echo mb_strpos($str,'何'),'<br>';//6
mb_internal_encoding('utf-8'); //设置PHP编码为utf-8
echo mb_strpos($str,'何'),'<br>';//2
echo strpos($str,'何'),'<br>';//6
复制代码

mb_substr():获取子字符串文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

<?php
    $str = '明日何其多';
    mb_internal_encoding('utf-8'); //设置PHP编码为utf-8
    echo substr($str,1,2),'<br>';//乱码
    echo mb_substr($str,1,2),'<br>';//日何
?>
复制代码
10.字符串编码

iconv(输入的编码,输出编码,字符串)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

$str = '明日何其多';
echo strlen($str),'<br>';//15
$str_gbk = iconv('utf-8','gbk',$str); //将字符串转成gbk格式
echo strlen($str_gbk),'<br>';//10

作者:渲染流星的颜色
链接:https://juejin.im/post/5acd57fc6fb9a028c81332da
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html

文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/4447.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/bc/4447.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定