获取长度
strlen($str)
实例:
// 获取字符长度例子
$str1 = NULL;
$str2 = 'AB';
$str3 = '中国';
echo strlen($str1); // 0
echo strlen($str2); // 2
echo strlen($str3); // 6 utf-8编码下 一个汉字3字节
大小写相关
全部转为小写
strtolower($str)
全部转为大写
strtoupper($str)
句子首字母大写
ucfirst($str)
单词首字母大写
ucwords($str)
综合实例
/ 大小写转换例子
$str1 = 'HELLO WORLD';
$str2 = 'hello world';
$say1 = strtolower($str1); // 全部小写
$say2 = strtoupper($str2); // 全部大写
echo $say1;
echo '<br/>';
echo $say2;
echo '<hr/>';
// 首字母或句首单词大写例子
$str3 = 'this is a test';
echo ucfirst($str3);
echo '<br/>';
echo ucwords($str3);
替换相关
所谓的区分 和 不区分,是指 被替代部分
的选取。
区分大小写
str_replace(被替代,替代部分,字符串)
不区分
str_ireplace(被替代,替代部分,字符串)
综合实例
// 把a都替换成b
$str = 'javascript';
echo str_replace('a','b',$str), '<hr/>';
echo str_replace('A','b',$str), '<hr/>'; // 失败
echo str_ireplace('A','b',$str), '<hr/>'; // 成功
删除相关
删除合法字符串前
的非法字符
ltrim($str [, 需删除字符])
删除合法字符串后
的非法字符
rtrim($str [, 需删除字符])
删除非法字符(包括前和后)
trim($str [, 需删除字符])
上述方法,在页面上没有差别,差别只体现在html代码上
!!!
忽略第二个参数,将移除以下字符。
位置(index)相关
首次出现的位置
strpos(字符串,搜索字符[,开始位置]) 区分大小写
stripos(字符串,搜索字符[,开始位置]) 忽略
最后一次出现的位置
strrpos(字符串,搜索字符[,开始位置]) 区分大小写
strripos(字符串,搜索字符[,开始位置]) 忽略
综合实例
$str1 = 'javascript';
$str2 = 'a';
$str3 = 'A';
// 第一次出现的位置
echo strpos($str1,$str2);
echo stripos($str1,$str3);
// 最后一次出现的
echo strrpos($str1,$str2);
echo strripos($str1,$str3);
注:
失败将返回false
。
截取相关
普通截取
substr(字符串, 开始位置[,长度])
注意:
1)如果省略长度,则返回从开始位置到结尾之间的字符串;
2)如果开始位置 为负数,则倒这数;
3)如果长度为负数,将会从末尾取出相应数量的字符。
实例
$str1 = 'javascript';
echo substr($str1,0,4); // java
echo '<hr/>';
echo substr($str1,0); // javascript
echo '<hr/>';
// 开始位置负数
echo substr($str1,-2); // pt
echo '<hr/>';
// 长度负数
echo substr($str1,-5,-2); // cri 去除后面2位字符
截取前面或后面的内容
strstr (字符串,搜索字符[,规则]) 区分大小写
stristr (字符串,搜索字符[,规则]) 忽略
规则:
- (默认) false,向后搜索
- true,向前搜索
最后一次出现位置及后面的内容
包括搜索字符!!!
strrchr(字符串,搜索字符)
综合实例
$str1 = 'javascript';
$str2 = 's';
$str3 = 'a';
// 返回第一次出现,之前的内容
echo strstr($str1,$str2,true); // java
echo '<hr/>';
// 返回第一次出现,之后的内容
echo strstr($str1,$str2); // script
echo '<hr/>';
// 返回最后一次出现
echo strrchr($str1,$str3); // ascript
echo '<hr/>';
反转输出
将字符串反转输出,例如 :java ==》 avaj。
strrev(字符串)
加密
注意,字符串最好包含大小写字母、数字、下划线等等才不容易被破解。还可以进行多次加密。
md5(字符串)
随机打乱
每次刷新都是不同的打乱过的字符串
str_shuffle(字符串)
转换与被转换成数组
字符串转数组
explode(分隔字符,字符串[,limit])
返回数组,数目有第三个参数决定
可能的值:
大于 0
返回包含最多 limit 个元素的数组小于 0
返回包含除了最后的 -limit 个元素以外的元素的数组等于0
返回包含一个元素的数组
实例
// 分割
$str2 = 'A|B|C|D';
print_r(explode('|',$str2)); // Array ( [0] => A [1] => B [2] => C [3] => D )
print_r(explode('|',$str2,-1)); // Array ( [0] => A [1] => B [2] => C)
print_r(explode('|',$str2,0)); // Array ( [0] => A|B|C|D )
数组转字符串
implode([分隔符,]数组)
join()
上面两个方法完全一样。
字符串占位符&&格式化字符串
sprintf(%.. ,arg1,arg2.....)
规则:
%% - 返回一个百分号 %
%b - 二进制数
%c - ASCII 值对应的字符
%d - 包含正负号的十进制数(负数、0、正数)
%e - 使用小写的科学计数法(例如 1.2e+2)
%E - 使用大写的科学计数法(例如 1.2E+2)
%u - 不包含正负号的十进制数(大于等于 0)
%f - 浮点数(本地设置)
%F - 浮点数(非本地设置)
%g - 较短的 %e 和 %f
%G - 较短的 %E 和 %f
%o - 八进制数
%s - 字符串
%x - 十六进制数(小写字母)
%X - 十六进制数(大写字母)
占位符用法例子
$num = 5;
$str = 'guangzhou';
$txt = sprintf('Here is %s , and i hava been here for %d years', $str, $num);
echo $txt; // Here is guangzhou , and i hava been here for 5 years
格式化用法
如果%个数多于arg参数,则需要在%号后面加上数字
和\$
占位。
附加格式,需要使用 .
实例
$num = 5;
$reu = -5;
echo sprintf("这是带有2位小数的结果:%1\$.3f, 这是不带小数的结果:%1\$d,数字到底是%2\$d",$num,$reu);
.3f 指的是保留三位小数的进行浮点数类型格式化。