【PHP】最详细PHP从入门到精通(四)——PHP中的字符串
PHP从入门到精通
之PHP中的字符串
大家好,继续跟进PHP最详尽的知识更新,本周,跟大家重点讲一下PHP中字符串的使用。在PHP中,字符串是非常重要的一个概念,基本上大家想到的字符串的处理功能,系统都已有相关函数了。php自诞生之初,就是为web开发而来的,网站开发中,字符串处理,是php的一大亮点。
下面博主将带给详细的给大家介绍PHP中常用的字符串:
字符串三种声明方式 |
1、"":双引号中可以解析变量"{$a}",双引号中可以使用任何转义字符;
2、'':单引号中不可以解析变量,单引号中不可以使用转义字符(但是可以使用单引号自身和转义符自身--->\' \\);
3、定界符:<<<标识符
标识符;必须顶格写,且整行不能有其他字符
定界符中可以使用变量,可以使用字符,也可以使用单双引号
实例展示:
echo <<<str
这是定界符\n
声明的字符串\n
Q的前端世界\n
str;
各种输出函数 |
1、echo:直接将内容输出。
①可以是函数用法echo() ,也可以是指令用法echo "";
②指令用法可以打印多个参数,用逗号分隔;echo "","","";
函数用法只能打印一个参数; echo ("");
2、print:基本与echo功能类似,但是
①总是有返回值1;
②无论函数写法还是指令写法,都只能传一个参数;
3、print_r:打印数组和对象时,会用一定的格式显示键和值的匹配;
print_r打印数组时,把数组的指针移到最后边。使用 reset() 可让指针回到开始处。(不推荐!推荐var_dump)
4、var_dump:调试专用!!显示打印的类型、值等信息,打印数组对象时,会缩进显示键值匹配;
5、exit()和die():两个函数完全别名关系,没有任何区别!!
输出信息,并且结束当前脚本(可以不输出信息)。
exit、exit()、exit("")都合法;
6、printf:打印内容,并将变量进行格式化输出;
第一个参数:需要打印的字符串内容,可以带多个占位符;
第二到多个参数:与占位符一一对应的变量;
作用:将后面的变量,按照占位符的格式要求依次输出;
%% 返回百分比符号
%b 二进制数
%c 依照ASCII值的字符
%d 带符号十进制数
%e 可续计数法(如1.5e3)
%u 无符号十进制数
%f或%F 浮点数
浮点数默认保留6位小数(四舍五入);%和f之间可以插入数字表示精确度。数字的小数部分,表示保留几位小数,四舍五入;数字的整数部分,表示精确的总宽度(整数+小数+小数点的总位数);如果设置的宽度<实际宽度,设置无效;如果如果设置的宽度>实际宽度,左边空格补位。
补0需在%之后宽度之前加一个0(只能补0);
%o 八进制数
%s 字符串
%x或%X 十六进制数
7、sprintf: 使用与printf一样,只是不是输出语句,而是将转换后的结果赋给一个变量;
eg:$str=sprintf("%.2f",1,23456)保留两位小数,赋给str;
实例展示:
$num=10;
echo "123","456","789";
print("123");
printf("haha%bha",$num);
PHP字符串的常用函数 |
trim():删除字符串两端的空格;
ltrim():删除字符串左边的空格;
rtrim():删除字符串右边的空格;
可以传入第二个参数,表示删除两边的相关字符;
echo trim($str,"! ");-->只要字符串两边出现!和空格,都会删除。
原理:从字符串两边开始,一次向内查找第二个参数中出现的字符,只要发现就删除,直到遇到第一个没有出现的字符为止!!
第二个参数常写为: " \t\n\r\0\x0B",用于把空格和相关符号都删掉;
" " (ASCII 32 (0x20)),普通空格符。
◦ "\t" (ASCII 9 (0x09)),制表符。
◦ "\n" (ASCII 10 (0x0A)),换行符。
◦ "\r" (ASCII 13 (0x0D)),回车符。
◦ "\0" (ASCII 0 (0x00)),空字节符。
◦ "\x0B" (ASCII 11 (0x0B)),垂直制表符。
实例展示:
$str=" 这 是 空 格 ! ";
echo ltrim($str)."\n";
echo rtrim($str)."\n";
echo trim($str,"! ")."\n";
echo trim($str,"! 格")."\n";
echo trim($str," \t\n\r\0\x0B")."\n";
str_pad():将字符串用指定字符,填充到指定长度;
①需要填充的字符串;必选。
②需要字符串填充到多长。必选。
如果长度<=输入字符串,则不起作用;
③需要填充的文本;可选;
默认空格填充。
④在字符串哪边填充:STR_PAD_LEFT/STR_PAD_RIGHT/STR_PAD_BOTH(2,0,1);
默认在右边填充。如果选BOTH,从两边填。
实例展示:
$str="abcde";
echo str_pad($str, 11,"123",STR_PAD_BOTH);
strtolower():将所有字母转成小写;
strtoupper():将所有字母转成大写;
上述两个常用于不区分大小写对比!
ucfirst():将字符串首字母转成大写;
ucwords():将每个单词的首字母转成大写(空格分隔单词);
后两个只负责转首字母,并不管其他字母的大小写。如果只需要首字母大写,通常配合strtolower()先将所有字母转小写。
实例展示:
$str="Hello MY world";
echo ucwords(strtolower($str));
与HTML相关的函数 |
1、nl2br($str):将字符串中所有的换行符,转为</br>。
2、htmlspecialchars($string):将指定的HTML的符号,转为实体内容(而不是执行);
& :& ":"
':' <:<
>:> 空格:
转成特殊字符后,无需再转回,浏览器会自动解析为对应的标签符号;
实例展示:
echo <<<str
这是定界符\n
声明的字符串\n
Q的前端世界\n
str;
echo nl2br($str);
htmlspecialchars($str);
3、strip_tags($str)删除出现的HTML标签,将字符串中所有的HTML标签删除
参数: 1.需要过滤的HTML标签的字符串
2.允许的HTML标签, 例如strip_tags($str,"<b>")允许$str中只存在b标签;
实例展示:
$str = <<<str
"哈哈哈"\n
"嘻嘻嘻"\n
str; echo nl2br($str);
echo htmlspecialchars($_POST["test"]);
echo "<>"; <?= "haha" ?> // 输出表达式,不能在PHP中使用,通常用于HTML嵌套:<h1 style="color: <?='red'?>"></h1>
strrev($str):将字符串反转 "123"--"321"
strlen($str):统计字符串的字符个数,中文=3个字符
mb_strlen($str):测量多字节字符串的长度,不论中英文,都算一个长度
{PHP中,很多字符串长度,都有mb_的前缀,专门用于操作中文多字节字符串}
number_format():将一个浮点数,格式化为一个字符串
参数:1.需要格式化的浮点数(必须)
2.保留几位小数,默认不保留
3.小数点的显示符号,默认.;
4.千位分隔符的显示符号,默认,;
md5()/sha1():分别使用md5及sha1加密算法对字符串进行加密操作;
实例展示:
$str = "abcdefg";
echo strrev($str); $str = "abcdefg";
echo strlen($str);
字符串的比较 |
1.可以用运算符比较
①如果两边都是字符,则比较首字母ASCII值;
②如果有一边是数字,则将字符串转为数字后再比较;
2、strcmp($str1,$str2)
①$str1>$str2--- 1 $str1<$str2----- -1 $str1==$str2----0
②strncmp 与strcmp完全相等,只是多了必填的第三个参数,表示字符串的长度
3、strcaseccmp 不区分大小写比对全字符串
4、strnatcmp 将字符串按照自然排序算法进行比较
strcmp("10","2");按照ASCII码,1<2故返回-1
strnatcmp("10","2");按照自然排序,10>2故返回1
所以两个函数在字符串相等时,返回0,没有任何差异
similar_text($first, $second)返回两个字符串的相似度。
实例展示:
var_dump(similar_text("img12", "img13"));
字符串的分隔 |
explode 第一个分隔符(不能为空""),第二个需要处理的字符串,第三个将字符串最多分为几份,如果小于实际分数,则前N-1个正常分,最后一个包含所有字符;
preg_split通过一个表达式分隔字符串,参数同上,第一个参数为正则表达式;
参数:① 需要分割的字符串;
②几个字符做个数组的一个元素,可选,默认一个;
③将字符串的每个字符,分隔为数组;
implode(string 连接符,Array 数组) 将数组用指定的连接符,链接为一个字符串;
eg:implode("",["a","b","c"])---->abc
implode(",",["a","b","c"])---->a,b,c
实例展示:
var_dump(explode(",", "s,t,r,i,n,g",3));
var_dump(str_split("hahahahaa",3));
substr(String $string, Int $start)
①需要截取的字符串,必选
②从第几个字符开始截取,必选
③截取的长度 可选,默认直接截取到最后(汉字相当于三个字符,用mb_substr);
mb_substr($str, $start)用于截取中文字符串,一个中文算一个字符
var_dump(substr("1234561111", 8,5));
字符串中查找 strstr 查找并返回字符串中是否包含某个子串,如果没找到,返回false
① 被查找的字符串,必选
② 需要查找的子串,必选
③ true/false false:返回子串及子串后的所有字符串,默认
true:返回子串前的部分
stristr 功能同上,不区分大小写
strrchr 取到第一个子串第一个字符最后一次出现的位置,返回当前位置及之后的字符串;
①被查找的字符
②需要查找的字符,如果第二个参数是字符串,则只会使用字符串的第一个字符,如果找到,返回该字符最后一次出现的位置,往后的部分;
实例展示:
var_dump(strstr("123456", 3));
var_dump(strrchr("123456", "234"));
重点!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
strpos返回某个子串在字符串中,第一次出现的位置
①被查找的字符串
②需要查找的字符串
③从第几位开始查,默认从头开始
strrpos返回某个子串在字符串中,最后一次出现的位置,其他同上;
stripos不区分大小写,返回第一次出现的位置;
strripos不区分大小写,返回最后一次出现的位置;
实例展示:
var_dump(strpos("123456aaxaa", "aa"));
str_replace
①被替换部分,可以是字符串也可以是数组
②新内容,可以是字符串也可以是数组
③原字符串
情况①第一个字符串,第二个字符串
var_dump(str_replace("e", "/", "aajsnianceomoe555el"));
原字符串中的e被替换为/
情况②第一个数组,第二个数组
>>>1.两数组长度相等,一一替换
2.数组一长度>数组二长度,第一个数组剩下的用""替换(删了)
3.数组一长度<数组二长度,第二个数组剩下的不用
情况③第一个数组,第二个字符串,数组的每一个,都替换为字符串.
实例展示:
var_dump(str_replace("e", "/", "aajsnianceomoe555el"));
var_dump(str_replace(["e","0"], ["/",""], "aajsnianceomoe5550el"));
本期分享就到这里,我们下期再见。觉得内容不错的小伙伴请点推荐,欢迎大家在评论下方评论区与博主互动,谢谢大家!
未完,待续。。。
更多精彩内容,敬请关注 Q的前端世界的技术博客。
【PHP】最详细PHP从入门到精通(四)——PHP中的字符串的更多相关文章
- 【PHP】最详细PHP从入门到精通(五)——PHP错误处理
PHP从入门到精通 之PHP中的字符串 在创建脚本和 web 应用程序时,错误处理是一个重要的部分.如果您的代码缺少错误检测编码,那么程序看上去很不专业,也为安全风险敞开了大门. 本教程介绍了 PH ...
- 【PHP】最详细PHP从入门到精通(二)——PHP中的函数
PHP从入门到精通 之PHP中的函数 各位开发者朋友大家好,自上次更新PHP的相关知识,得到了大家的广泛支持.PHP的火爆程度不言而喻,函数作为PHP中极为重要的部分,应诸位的支持,博主继续跟进更新 ...
- 【PHP】最详细PHP从入门到精通(三)——PHP中的数组
PHP从入门到精通 之PHP中的数组 各位开发者朋友大家好,链接上次更新,我们PHP的学习也更深了一层,本次博主给大家带来PHP数组的数组实例详解的相关资料.数组分为数组数值数值,关联数组,多维数组 ...
- 【PHP】最详细PHP从入门到精通(三)——PHP中的数组常用函数汇总
PHP从入门到精通 之PHP中的数组常用函数详解 数组作为PHP中最常用的结构之一,PHP强大的数组函数功能,给数组的相关操作带来了极大的便利.今天给大家介绍的PHP中数组函数,是PHP数组中重要的 ...
- 【PHP】最详细PHP从入门到精通(一)——想学习PHP的朋友们福利来了!
PHP从入门到精通 (一)PHP简介和基本知识 PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言.语法吸收了C语言.Java ...
- Python基本语法[二],python入门到精通[四]
在上一篇博客Python基本语法,python入门到精通[二]已经为大家简单介绍了一下python的基本语法,上一篇博客的基本语法只是一个预览版的,目的是让大家对python的基本语法有个大概的了解. ...
- MyBatis从入门到精通(四):MyBatis XML方式的基本用法之增删改
最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 1. insert用法 1.1 简单的 ...
- git详细使用教程入门到精通(史上最全的git教程)
Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不 需要联网了,因为版本都是在自己的电脑上.既然每个人的电脑都有一个完整的版本库,那多个人如何 ...
- Python基本语法[二],python入门到精通[四] (转)
写在前面 python你不去认识它,可能没什么,一旦你认识了它,你就会爱上它 回到顶部 v正文开始:Python基本语法 1.定义常量: 之所以上篇博客介绍了定义变量没有一起介绍定义常量,是因为Pyt ...
随机推荐
- 根据优先关系矩阵使用逐次加一发构造优先函数(Java)
若已知运算符之间的优先关系,可按如下步骤构造优先函数: 1.对每个运算符a(包括#在内)令f(a)=g(a)=1 2.如果a⋗b且f(a)<=g(b)令f(a)=g(b)+1 3.如果a⋖b且f ...
- 成熟的C#网络通信框架介绍——ESFramework通信框架
(转自:http://www.cnblogs.com/zhuweisky/archive/2010/08/12/1798211.html) ESFramework通信框架是一套性能卓越.稳定可靠.强大 ...
- 前端魔法堂:onsubmit和submit事件处理函数怎么不生效呢?
前言 最近在用Polymer增强form,使其支持表单的异步提交,但发现明明订阅了onsubmit和submit事件,却怎么也触发不了.下面我们将一一道来. 提交表单的方式 表单仅含一个以下的元素时 ...
- 基于ssh,shell,python,iptables,fabric,supervisor和模板文件的多服务器配置管理
前言:略 新服务器:NS 主服务器:OS 一:OS上新建模板目录例如 mkdir bright 用于导入一些不方便在远程修改的配置文件.redis.conf等,到需要配置的步骤时用远程cp命令覆 ...
- 使用Git上传项目代码到github
github是一个基于Git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要公开.这对于一般人来说公共仓库就已经足够了. 注册账户以及创建仓库 要想使用gi ...
- 《一起》Alpha版软件使用说明
1.引言 1.1编写目的 本手册是软件工程概论团队项目<一起>的Alpha版使用说明,面向的对象群体为全校师生. 1.2项目背景 本项目由<软件工程概论>课程需求创建,软件由S ...
- [原创]CentOS下Mysql双机互为备份
一.环境: 1.安装Centos-6.5-x64位系统的机器两台: host1:192.168.2.3 host2:192.168.2.4 (互相能ping通) 2.安装Mysql. 命令:Yum ...
- Python爬虫学习(二) ——————爬取前程无忧招聘信息并写入excel
作为一名Pythoner,相信大家对Python的就业前景或多或少会有一些关注.索性我们就写一个爬虫去获取一些我们需要的信息,今天我们要爬取的是前程无忧!说干就干!进入到前程无忧的官网,输入关键字&q ...
- 页面中的平滑滚动——smooth-scroll.js的使用
正常的本页面锚链接跳转的时候跟PPT似的,特别生硬,用户体验非常差. 这时候我们就可以借助smooth-scroll.js这个插件,来实现本页面的平滑的跳转. 1首先,导入必须的JS文件 <sc ...
- 搭建免费wifi,嗅探接入该wifi的所有网络信息
环境: 1: create_ap , 搭建免费wifi. 2: wireshark , 嗅探网络信息. 搭建热点 搭建热点: git clone https://github.com/oblique/ ...