太原网站设计排名,房地产培训网站建设,东南网,学院评估 网站建设整改Ch05: 字符串简介 5.1 字串说明 字符串是指由0个字符构成的一串字符#xff0c;所以叫字符串。这里所说的字符主要包括以下几种类型#xff1a;数字类型#xff1a;如1, 2, 3, 4等。字母类型#xff1a;如果a, b, c, d等。特殊字符#xff1a;如#, $, %, ^, 等。…Ch05: 字符串简介 5.1 字串说明 字符串是指由0个字符构成的一串字符所以叫字符串。这里所说的字符主要包括以下几种类型数字类型如1, 2, 3, 4等。字母类型如果a, b, c, d等。特殊字符如#, $, %, ^, 等。不可见字符如\n, \r, \t等。其中不可见字符是比较特殊的一组字符它用来控制字符串格式化输出在浏览器上不可见只能看到字符串输出的结果。不可见字符示例echo fruit\rpear\napple\tbanana fruit pear apple banana 提示运行结果在浏览器上不可见或者说是非预期结果。需要在IE浏览器中选择查看/源文件命令来查看字符串的输出结果 5.2 单引号 与 双引号 双引号中的内容是要经过PHP语法分析器解析任何变量在双引号中都会被转换(替换)成它的值进行输出显示单引号中的内容是所见即所得的无论有没有变量都会被当作普通字符进行原样输出。在进行SQL查询之前所有字串都必须加单引号以避免可能的注入漏洞和SQL错误。注意1) 理论上讲单引号要快一些但是如果需要打印一个变量的值则必须使用双引号。2) 有效的HTML常常包括许多用双引号括住的属性所以当利用PHP打印HTML时使用单引号最容易。$nameJACK 双引号调用变量$name: my name is JACK 单引号调用变量\$name: my name is $name 5.2 字符串连接符 句点就是字符串连接符它可以把多个字符串连接成一个字符串。但句点无法实现大量简单字串的连接PHP允许程序员在双引号中直接包含字串变量。 也就是上一节里面使用过的包含变量的双引号两者呈现效果相同下面示例是显示效果(但源码书写方式有别)我的网址 www.shopbao.com 我的网址 www.shopbao.com 5.3 转义/还原字串数据addslashes(): 在指定的预定义字符前添加\用于为存储在数据库的字串以及查询语句准备合适的字串。stripslashes(): 是addslashes()的反函数用于还原转义的字符也叫反转义。以单引号为定界符的php字串支持2个转义\\, \ 以双引号为定界符的php字串支持8个转义\\, \, \r, \n, \t, \$, \[0-7]{1,3}, \x[0-9A-Fa-f]{1,2} addslashes()支持4个转义转义引号问题\\, \, \, NULL 前面2个指出了我们在定义字串时需要注意的特殊字符后面1个则是某一函数(这里是addslashes)自身所规定的特殊字符 不要混淆了。实际上不论是单引号还是双引号包含在里面的双引号或单引号子串都会被转义。为避免引发addslashes()双层转义结果出错我们建议1) 单引号内使用双引号子串双引号内使用单引号子串就OK。2) 单引号内编码\和\\都会显示\且字串长度都为1。而在双引号内\常用来跟后面的3个字符一起来组合8进制或16进制数(或ASCII码)如果要正常输出\编码时必须使用\\这一特点要注意一下。3) 带有转义字符的字串的长度要以转换后的字符长度为准。转义字符测试单引号之引号测试:显示字串单引号包含 双引号 子串. 转义字串\单引号\包含 \双引号\ 子串. 还原字串单引号包含 双引号 子串. 双引号之引号测试:显示字串双引号包含单引号子串. 转义字串\双引号\包含\单引号\子串. 还原字串双引号包含单引号子串. 单引号之反斜杠测试:显示字串1个反斜杠\; 2个反斜杠\ 转义字串1个反斜杠\\; 2个反斜杠\\ 还原字串1个反斜杠\; 2个反斜杠\ 双引号之反斜杠测试:显示字串1个反斜杠\; 2个反斜杠\ 转义字串1个反斜杠\\; 2个反斜杠\\ 还原字串1个反斜杠\; 2个反斜杠\ 单引号之NULL测试:显示字串\0 转义字串\\0 还原字串\0 双引号之NULL测试:显示字串 转义字串\0 还原字串 单引号之特殊字符测试:显示字串I m Jack, have $\5023 on me, yeah. _:\t_\102 转义字串I \m Jack, have $\\5023 on me, \yeah\. _:\\t_\\102 还原字串I m Jack, have $\5023 on me, yeah. _:\t_\102 双引号之特殊字符测试:显示字串Im Jack, have $B3(P23) on me, yeah. _B 转义字串I\m Jack, have $B3(P23) on me, \yeah\. _B 还原字串Im Jack, have $B3(P23) on me, yeah. _B 5.4 字符串操作 string trim(string str [, string charlist]); 去除字串左右两边的空格或指定字串返回去掉成功后的字串但不会改变原有字串string ltrim(string str [, string charlist]); 去除字串左边的空格或指定字串返回去掉成功后的字串但不会改变原有字串string rtrim(string str [, string charlist]); 去除字串右边的空格或指定字串返回去掉成功后的字串但不会改变原有字串int strlen(string str); 获取指定字串str的长度 string substr(string str, int start, [, int length]); 截取字串。 int strcmp(string str1, string str2); 比较字串以字节方式大小写敏感如果相等返回0如果前者大返回值0如果前者小返回值0 int strcasecmp(string str1, string str2); 比较字串以字节方式大小写不敏感。 int strnatcmp(string str1, string str2); 比较字串以自然排序法方式 int strncmp(string str1, string str2, int len);比较字串中的前n个字符。string strstr(string haystack, string needle); 检索字串。 string strchr(string haystack, string needle); 检索字串。int substr_count(string haystack, string needle); 获取子串在字串在出现的次数。 mixed str_replace(mixed search, mixed replace, mixed subject [, int count]); 替换字串中的子串。 string substr_replace(string str, string repl, int start [, int length]); 替换字串中指定位置处的子串。 string number_format(float number [, int num_decimal_places [, string dec_seperator, string thousands_seperator]]); 对数字进行字串格式化。 array explode(string seperator, string str [, int limit]); 分割字串。 string implode(string glue, array places); 合成字串。 注意1) [l|r]trim默认过滤字符包括\r, \n, \t, \0, \x0B, (space)当然你也可以在这个基础上在charlist参数中提供要过滤的自定义字符。2) strlen函数汉字占2字符数字、英文、小数点、下划线和空格占1个字符。3) substr函数采用下标截取法即第1个字符时start定为0若start0从字串末尾倒数第start个字符处开始截取 若length0表示取到倒数第length个字符。4) substr函数截取含有中文字符的字串时如果start为奇数会引起子串乱码所以不建议用substr截取中文字串。解决中文子串乱码的最好办法是用substr()编写一个自定义函数。5) number_format函数参数个数可以是1、2、4但不能是3。 1个参数格式化到小数点且每一千时以,隔开2个参数格式化到小数点后第num_decimal_places位且每一千以,隔开; 4个参数格式化到小数点后第num_decimal_places位用dec_seperator替代.用thousands_seperator替代千位隔位符(,); 6) explode函数字串分割。 如果separator为空字串函数返回false如果separator在str中找不到函数返回包含str单个元素的数组。 如果limit0返回数组包含最多limit个元素而最后的元素将包含string的剩余部分如果limit0返回除了最后的-limit个元素外的所有元素。 7) implode函数是个和explode()相对的函数一个用于合成一个用于分隔。str1234567890 substr(str, 1)234567890substr(str, 1, 4)2345substr(str, -4, 4)7890substr(str, 0, -4)123456substr(str, -4, 3)789substr(str, -4, -3)7str1B10str2B2str3b2 strcasecmp(str1, str2)-1strnatcasecmp(str1, str2)1strcmp(str2, str2)0strcmp(str2, str3)-1strstr(Hello world!,world)world!strstr(Hello world!, zz) 转载于:https://www.cnblogs.com/jacklikedogs/p/3481672.html