PHP笔记02-字符串
- 不可见字符是比较特殊的一类字符,它主要用来控制字符串格式化输出,在浏览器上不可见。如:\n(换行符)、\r(回车符)、\t(Tab字符)。
- ★任何变量在双引号中都会被转换成它的相应的值进行输出显示,而单引号的内容是“所见即所得”。
- PHP允许在双引号中直接包含字符串变量。如:echo "$name1$name2.com";
- 去除字符串首尾空格和特殊字符:trim()函数去除字符串左右两边的空格和特殊字符;ltrim()去除左边的,rtrim()去除右边的。
- 转义字符串,只需要在前面加上“\”符号。自动转义、还原字符串,使用addslashes()函数和stripslashes()函数。
- 对指定范围内的字符串进行自动转义和还原,使用addcslashes()函数和stripcslashes()函数。
- 其他非字母和数字且ASCII码小于32和大于126的字符转换成八进制。
- strlen()函数用来获取指定字符串的长度,也可以用同来检测字符串的长度。汉子占两个字符,数字、英文、小数点、下划线、空格占一个字符。echo strlen($msg); if(strlen($msg)<6){…}
- 截取字符串:substr()函数。如果指定开始截取的位置为负数,则从字符串的末尾开始截取。如果指定截取字符的个数length为负数,则取到倒数第length个字符。
【经典应用】:使用substr()函数截取超长标题,对标题超出15个字的部分采用“……”表示。
- 比较字符串方式一:使用strcmp()函数和strcasecmp()函数按照字节比较。比较结果显示:前和后相同为0,前>后为大于0,前<后为小于0.
区别:strcmp()区分大小写,而后者不区分大小写。应用:使用strcmp()区分大小写可以判断输入的用户名和密码是否正确。
- 字符串比较方式二:strnatcmp()自然比较,比较字符串中的数字部分。strnatcasecmp()不区分大小写。
比较结果显示:前和后相同为0,前>后为大于0,前<后为小于0. (注意:这样比较10<2)。
- 字符串比较方式三:strncmp()函数比较字符串中前n个字符,区分大小写。前和后相同为0,前>后为大于0,前<后为小于0.
- 使用strstr()函数查找指定的关键字,区分大小写。例:echo strstr("明日编程词典","编"); //结果为“编程词典”。
经典应用:使用strstr()函数检测上传的图片的格式是否正确。[注:strchr()函数正好相反,从字符串后序的位置开始检索子字符串的。]
- 使用substr_count()函数检索字串出现的次数,常用于搜索引擎中,针对子串在字符串中出现的次数进行统计,便于用户第一时间掌握子串在字符串中出现的次数。
- 替换字符串——str_ireplace()函数:使用新的子字符串替换原始字符串中被指定要替换的字符串。
该函数不区分大小写,若要区分大小写需使用str_replace()函数。该函数经典应用:查询关键字描红(适用于模糊查询)。
替换字符串——substr_replace()函数:对指定字符串中的部分字符串进行替换
格式化字符串:number_format()函数格式化数字。可以有一个参数或两个参数或四个参数(不能有3个参数)。
分割字符串:explode()函数,若使用print_r()函数则输出数组,若使用echo语句则输出数组元素。合成字符串——implode()函数
14. 关于字符串的细节问题
(14.1)转义符“\”,例如要输出“’C:\’”,需要写成“’C:\\’”;“’What’s’”要写成“’What\’s’”。
(14.2)双引号支持的常用的转义符号:
(14.3)使用定界符定义字符串:<?php echo <<<mark …(字符串内容)… mark ?>
(14.4)关于截取字符串substr()的使用:
15.字符串的格式化
(15.1)printf()函数[直接输出]和sprintf()函数[需要使用echo输出]
(15.2)nl2br()函数:将字符串中的换行符“\n”转换为HTML中的“<br/>”然后显示出来。
(15.3)wordwrap()函数:指定从某列字符进行强制换行
(15.4)修改字母大小写函数:strtolower()函数、strtoupper()函数、ucwords()函数。
16.计算字符串的长度与数目
(16.1)strlen()函数:返回字符串的长度
(16.2)substr_count()函数:确定一个指定的子字符串在所提供的字符串中有多少个。
(16.3)str_word_count()函数:统计某个单词出现的数目
17.字符串的查找与处理
(17.1)strstr()函数:查找子字符串,返回子字符串第一次出现后的所有内容。
[备注:如果要忽略字母大小写,可以使用stristr()函数,用法相同]
(17.2)strpos()函数:查找字符串的位置,返回一个字符串在另一个字符串中第一次出现的位置。如果要忽略字母大小写,可以使用stripos()函数,用法相同
(17.3)str_repeat()函数:字符串复制
(17.4)strrev()函数:反转字符串
(17.5)substr_replace()函数:字符串替换
18.切分与合并字符串
(18.1)explode()函数:用指定的分隔符把字符串切分成数组
(18.2)str_split()函数:将一个字符串分割成等长度的多个子字符串。
(18.3)implode()函数:将数组的元素连接起来成为字符串。
19.字符串的比较
(19.1)strcmp()函数可以精确的比较两个字符串的大小
(19.2)strncmp()函数可以选择想要比较的字符串长度(字符个数)
1.PHP中可以通过超级全局变量数组$_SERVER[] 的HTTP_ACCEPT_LANGUAGE得到浏览器的语言环境:
- 用于设置本地系统环境的信息是setlocale()函数。
【字符串加密】
- 在PHP中,能对数据进行加密的函数主要有:crypt()、md5()和sha1(),还有加密扩展库:Mcrypt和Mhash.
- 使用crypt() 函数可以完成单向加密功能,密文不可还原成明码,并且每次加密后的数据还不相同:string crypt(string str [,string salt])
- 使用md5() 函数和使用sha1() 函数加密:
- PHP加密扩展库(1):Mcrypt扩展库可以实现 加密解密功能,技能将明文加密,也可以将密文还原。
- Mcrypt() 工作流程。
- PHP加密扩展库(2):Mhash扩展库则包含了MD5在内的多种hash算法实现的混编函数。
- Mhash应用:
【代码】https://github.com/rxbook/study-php/tree/master/code02