牛骨文教育服务平台(让学习变的简单)
博文笔记

php——08字符串函数

创建时间:2018-03-27 投稿人: 浏览次数:122

获取长度

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(字符串)



加密

注意,字符串最好包含大小写字母、数字、下划线等等才不容易被破解。还可以进行多次加密。

md(字符串)



随机打乱

每次刷新都是不同的打乱过的字符串

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 指的是保留三位小数的进行浮点数类型格式化。

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。