【小白笔记】PHP学习之路 (9) --字符串(1)

来源:互联网 发布:php mysql 集成安装包 编辑:程序博客网 时间:2024/04/29 06:23

定义字符串:

        可以通过单引号( ' )、双引号( " )、定界符( <<< )定义字符串

    单双引号的区别:

        解析器不会对单引号中的变量进行解析,而双引号则相反。如:
        
<?php$url = "https://bbs.abc.cn";$rmd = "欢迎光临,讨论交流请至{$url}去往\n";  //解析器将会解析双引号中的变量和转义符,这里不加{}会报错,因为php支持中文变量名$rms = '欢迎光临,讨论交流请至$url去往\n';  //解析器不会解析单引号中的变量和转义符echo $rmd;echo $rms;?>
        结果:
欢迎光临,讨论交流请至https://bbs.abc.cn去往欢迎光临,讨论交流请至$url去往\n

        由于php要对双引号中的内容进行解析,所以执行双引号时相对来说速度会慢一些。
        注意,如果双引号中变量并不是在字符串末尾,那么需要用花括号括起来,否则解析器会将$后面一连串字符串作为变量名。

    定界符:

        用定界符定义的字符串可以跨行,也可以解析其中的变量及转义符。注意结束处必须顶格。
$multi_line_str = <<<str字符串...str;   //这里一定要顶格写echo $multi_line_str;

字符串处理函数:

字符串中的空格处理:

trim    删除字符串左右空格
ltrim   删除字符串左侧空格
rtrim   删除字符串右侧空格

字符串大小写转换:

strtolower   将字符串转换为小写
strtoupper   将字符串转换为大写
ucfirst           字符串的首字母大写
ucwords      每个单词的首字母大写
CSS中的text-transform属性也可以实现一样的效果。

字符串填充函数:

str_pad("字符串", 长度, "填充内容", 填充的方向)
填充的方向:STR_PAD_BOTH   左右路两侧进行填充,如果填充为奇数,则右侧多填充
                        STR_PAD_LEFT    从左侧填充
                        STR_PAD_RIGHT    从右侧填充
                        如果长度小于原字符串长度,则不会进行填充。默认填充方向为右侧。
$str = '  hello world ';echo str_pad(trim($str),35,'+');

输出结果:
hello world++++++++++++++++++++++++

修改一下,从两侧填充:
$str = '  hello world ';echo str_pad(trim($str),16,'+',STR_PAD_BOTH);  //填充后长度改为16

结果就是这样(可以看见右侧多填充了一个'+'):
++hello world+++

字符串顺序翻转函数:

strrev() 

$edu = 'study';echo strrev($edu);

yduts

md5加密:

md5()     用于对要存储到数据库的数据进行加密 
一个小实例:
<?php$pwd = 'passwordtest';if(@md5($_GET['pwd'])==md5($pwd)){echo "登录成功";}else{?><form action="" method="get">用户名:<input type="text" name="uname"/><br/>密码:<input type="password" name="pwd"/><br/><input type="submit" value="登录"/><br/></form><?php}?>

格式化金额字符串函数:

number_format("字符串", 小数位数, '小数点[可选]', '千位分隔符[可选]')
$number1 = '1524549781243';echo number_format($number1,3)

1,524,549,781,243.000

字符串拆分成数组:

explode("拆分依据的字符串", "拆分的字符串", "返回的数组元素的数目[可选]")
$str = "dsa ash .s 567 asna_sca";$arr = explode(' ',$str);print_r($arr);


结果:
Array ( [0] => dsa [1] => ash [2] => .s [3] => 567 [4] => asna_sca )

数组元素组合成字符串:

implode("连接字符串[可选]", 数组)   相当于explode的“反函数”,别名join()。
$str1 = implode('|', $arr);var_dump($str1);

结果:
string 'dsa|ash|.s|567|asna_sca' (length=23)

字符串输出函数:

echo()    输出一个或多个字符串,严格来讲echo不是函数而是关键字,可以使用简化语法,即不用括号。
print()     也是输出字符串,但不支持逗号分隔多个显示变量的语法。
                  Tips:echo执行性能高于print,且更易用,因此一般不使用print。
printf()    格式化输出字符串。
print_r()   打印变量的值,可用于数组和对象。
$url = "https://bbs.rainmeter.cn"."<br/>";$arr = array("Peter","Quagmire","Joe");print_r($url);print_r($arr);

结果:
https://bbs.rainmeter.cnArray ( [0] => Peter [1] => Quagmire [2] => Joe )


<?php$price = '200.75';$num = 437;$name = '水晶头';printf('材料名称:%s  数量:%d  总价:%.4f', $name, $num, $price);?>

结果:
材料名称:水晶头 数量:437 总价:200.7500

如果想用同一个变量以多种格式输出,可以使用 %数字\$   的形式:
<?php$num1 = 23;$num2 = 12;printf("数量:%1\$u %2\$u 单价:%1\$.2f %2\$.3f", $num1, $num2);?>

结果:
数量:23 12 单价:23.00 12.000

字符串的截取:

substr(字符串, 开始截取的位置, 截取后的总长度)   

    对字符串进行指定数量的截取。

$url = "https://bbs.rainmeter.cn"."<br/>";$str = substr($url, 8, 13);echo $str;

结果:
bbs.rainmeter

也可以反向截取:
$url = "https://bbs.rainmeter.cn";$str = substr($url, -12);echo $str;

结果:
rainmeter.cn

strchr() /strstr()

    后者是前者的别名,在一个字符串中查找另一个字符串(第一次出现,区分大小写),找到则返回从该字符串开始至结尾的字符串,找不到则返回假。

$url = "https://bbs.rainmeter.cn";$str = strchr($url,"rain");$str1 = strstr($url,"bbs");$str2 = strstr($url,"abc");   //找不到,返回false,在网页上不显示echo $str,'<br/>',$str1,'<br/>',$str2;var_dump($str2);

结果:
rainmeter.cnbbs.rainmeter.cnboolean false


stristr()和strrchr()

    如果想查找时不区分大小写,可以使用stristr()。
    strrchr()    在一个字符串中查找另一个字符串,返回最后出现处到结尾的字符串。

strpos()和stripos()

    前者在字符串中查找字符串(区分大小写),返回首次出现的位置。后者不区分大小写

strrpos() 

    从后面查找,功能与strpos()相同 。 

strtok()

    通过字符串把主字符串进行拆分。一次返回“一段”:
例如:
$some_str = "abc,def,hij,0,klm,nop,qrs";$s = strtok($some_str,',');while($s){echo $s."<br/>";$s = strtok(',');}var_dump(!'0');  //由于'0'==false,因此在拆分到0的地方退出循环

结果:
abcdefhijboolean true

如果不想在‘0’处停止,可以使用全等判断:
while($s!==false){

修改后的结果就是这样:
abcdefhij0klmnopqrsboolean true

parse_str()   

    把字符串拆分成变量。
$url = "http://www.nothing.com.hk?uname=zhangsan&age=33&sex=boy";$u_msg = substr($url,(strpos($url,'?')+1));parse_str($u_msg);echo "Welcome to Nothing,username:".$uname." age:".$age." sex:".$sex;

结果:
Welcome to Nothing,username:zhangsan age:33 sex:boy

chuck_split()

    把字符串按指定大小拆分,可指定拆分后每个字符串的长度和连接符,默认是空格。
$url = "http://www.nothing.com.hk?uname=zhangsan&age=33&sex=boy";echo chunk_split($url,3,'--');

结果:
htt--p:/--/ww--w.n--oth--ing--.co--m.h--k?u--nam--e=z--han--gsa--n&a--ge=--33&--sex--=bo--y--


吐槽一下,字符串函数可真多.....抓狂 .一次记不完,下一篇再继续吧。奋斗
以上均为个人理解,初学php,如果有不对的地方,欢迎大家指正!微笑
0 0
原创粉丝点击