php字符串总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_41179401/article/details/84289737

                                                 php字符串总结

<?php
// 字符串声明 单引号 双引号 heredoc(相当于双引号) nowdoc(相当于单引号)
// 双引号可以解析变量和转义字符 单引号效率高
// 不加引号默认是双引号 heredoc
echo <<< 'doc'
123
doc;
echo "<br>";
// heredoc与其他字符串的拼接
echo <<< 'DC'
123
DC
.'A';
$_ab = ['id'=>1];
echo "<br>";
//如果字符串里有数组变量要加上{}
echo "123{$_ab['id']}".'<br>';

// 字符串的增删改查 通过索引
$_s = '12345';
$_s[5] = '6';      //新增
echo $_s.'<br>';   //123456
$_s[5] = '';       //删除
echo $_s.'<br>';   //12345
$_s[0] = '0';      //修改
echo $_s.'<br>';   //02345

// 字符串操作函数
$str = '123456789';
// 获取子串 substr
echo substr($str, 0,2).'<br>';   //12
echo substr($str, -2,2).'<br>';  //89
// 替换子串 substr_replace
echo substr_replace($str, '0', 0,1).'<br>';  //023456789   替换
echo substr_replace($str, '', 0,1).'<br>';   //23456789    删除
echo substr_replace($str, '0', 0,0).'<br>';  //0123456789  添加
// 查询子串出现的次数
echo substr_count($str, '1',0,5).'<br>';                 //1
// 比较字符串 0:相等 >0:第一个子串大于第二个 <0:第一个小于第二个
// 第三个参数是 第一个字符串开始比较的位置
echo substr_compare('1234',substr($str, 0,4) ,0).'<br>'; //0


// 查找索引 strpos 第三个参数是从第几个字符开始查找 默认为 0
echo strpos($str, '2',1).'<br>';     // 1 
// 查找指定字符开始的剩下子串 true:显示前面的
echo strstr($str, '2').'<br>';       // 23456789
echo strstr($str, '2',true).'<br>';  // 1
// 填充与替换 替换后的字符串长度 替换内容 替换方式
echo str_pad($str, 20,'*',STR_PAD_RIGHT).'<hr>'; //123456789***********
//字符重复函数
echo str_repeat('ab',5).'<br>';         //ababababab
// 随机打乱字符串
echo str_shuffle($str).'<br>';  		//随机打乱
// 字符替换函数 支持数组多替换
echo str_replace('1','0',$str).'<br>';  // 023456789 1替换成0
$arr_1 = ['2','3','4'];
$arr_2 = ['5','6','7'];
//把2,3,4替换成5,6,7
echo str_replace($arr_1, $arr_2, $str).'<br>'; // 156756789
// 统计字符长度
echo strlen($str).'<br>';      // 9 不支持中文
echo mb_strlen($str).'<br>';   // 9 支持中文 
echo mb_strwidth($str).'<br>'; // 9 将所有多字节字符转化为2个字节处理

// 字符串与数组的转化
$sity = '安徽省|合肥市|瑶海区|磨店乡';
$arr = explode('|', $sity);
print_r($arr);
echo "<br>";
echo implode('|', $arr);
echo "<br>";

// 字符串转换
// 强制转换 临时转换
echo gettype((string)500).'——'.gettype(500).'<br>';//string——integer
echo gettype(strval(500)).'——'.gettype(500).'<br>';//string——integer
// 永久转换
$a = 300;
$type = gettype(settype($a, 'string'));
echo gettype($type).'——'.gettype($a);  //string——string
echo "<br>";
// 自动转化
echo $a + '35qw';  //335  35qw --> 35
echo "<br>";

// 字符串格式化
// 大小写转化
echo strtoupper("abcd").'<br>';  //ABCD
echo strtolower('ABCD').'<br>';  //abcd
// 字符串转为时间戳
echo strtotime('2018-1-30').'<br>';
// 千位分隔符 第二个参数是保留几位小数(四舍五入),接着是千位分隔符和小数点
echo number_format('12345678.235','2','|','*');  //12*345*678|24
echo "<br>";
// 整数与ASCII码的
echo chr(88).'<br>';    // X
echo ord('s').'<br>';    // 115
// 将换行符\n转化为<br>
echo nl2br("12\n34\n");  //
// 编码的转换 把原来的utf-8转化为gbk
echo iconv('utf-8', 'gbk', '张三').'<br>'; //出现乱码
// 加密
echo md5('123456').'<br>';
echo sha1('123456').'<br>';

//字符串过滤与编码
// trim()
echo trim(' 231 ').'<br>';  	//过滤两边的空格  
echo ltrim(' 231 ').'<br>';  	//过滤左边的空格
echo rtrim(' 231 ').'<br>'; 	//过滤右边的空格
echo trim('12321b','b').'<br>'; //12321 过滤掉指定字符

echo strip_tags("<h2><p>2</p></h2>",'<h2>');  //过滤掉了html代码 保留h2

// htmlspecialchars  把html代码当作纯文本输出
echo htmlspecialchars("<h1>12</h1>");         //<h1>12</h1> 
echo htmlspecialchars_decode("<h1>12</h1>");  // 和htmlspecialchars相反

// json字符串处理
$arr = array('id'=>12,'name'=>'su');
// json_encode 将数组或者对象转化为json
$json = json_encode($arr);  //{"id":12,"name":"su"} 
echo $json;
echo "<br>";
// json_decode 将json字符串转化为对象  true转化为数组
print_r(json_decode($json,true));
echo "<br>";
// 序列化 a:表示数组 2:表示2个值,s:键是string类型 2:键是2位 id:键名 接着是值 
echo serialize(array('id'=>12,'name'=>'su'));
//a:2:{s:2:"id";i:12;s:4:"name";s:2:"su";}
echo "<br>";
print_r(unserialize(serialize(array(1,2,3,4))));
?>

猜你喜欢

转载自blog.csdn.net/qq_41179401/article/details/84289737
今日推荐