收藏 分享(赏)

php字符串.doc

上传人:gnk289057 文档编号:12024746 上传时间:2021-07-31 格式:DOC 页数:9 大小:45KB
下载 相关 举报
php字符串.doc_第1页
第1页 / 共9页
php字符串.doc_第2页
第2页 / 共9页
php字符串.doc_第3页
第3页 / 共9页
php字符串.doc_第4页
第4页 / 共9页
php字符串.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、1、字符串的连接字符串可以使用字符串连接符(.)来连接常见的用途是建立大块的 HTML 字串代码,赋值号 (=) 连接符 (.) 可以被简写合并为 (.=) 符号2、在字符串中使用变量这个功能让你无须使用连接符号来粘和大量的简单字符串单引号串和双引号串在 PHP 中的处理是不相同的。双引号串中的内容可以被解释而且替换,而单引号串中的内容总被认为是普通字符。例如: $foo = 2; echo “foo is $foo“; / 打印结果 : foo is 2 echo foo is $foo; / 打印结果 : foo is $foo echo “foo is $foon“; / 打印结果: f

2、oo is 2 (同时换行) echo foo is $foon; / 打印结果: foo is $foon为避免这些字串使用中的潜在问题,我们通常把复杂的变量从字串中分离开来,就像这样:echo value = . $a$i$j;还有一种办法是将复杂变量用花括号括起来,语法分析器就能正确辨认了: echo “value = $a$i$j“ /打印二维数组$a 的某个元素 这样,又出现新问题了。当我们想在字串中引用花括号字符本身时,就要记得使用转义符了: $var = 3; echo “value = $var“; / 打印结果 “value = 3“ echo “value = $var“;

3、 / 打印结果 “value = 3“3 字符串的长度长度PHP 提供 strlen 函数来计算字符串的长度:$str = “test“; echo strlen($str); / 将输出 4有点奇怪的是 strlen 将中日等汉字以及全角字符都当作两个或四个长度计算。好在 mbstring或 icon 两个函数可以帮助解决这个问题,比如:$len = iconv_strlen($str, “GBK“); $len = mb_strlen($str, “GBK“); 注:mbstring 模块提供了大量的对含有多字节字符的字符串的处理函数,推荐多加应用4、字符串的分隔与连接PHP 允许你把一个

4、字符串按照一个分隔符进行分隔成一个数组,或者将一个数组组合成一个字符串。看下面的例子:$str = “i love iwind“; $array = explode(“ “, $str); 上面的 explode 函数,就把$str 字符串按空格字符进行分隔,结果返回一个数组 $array:array(“i“, “love“, “iwind“).与 explode 函数有类似功能的有:preg_split(), spliti(), split()等函数。与此相反的,implode 和 join 则能把一个数组结合成一个字符串,他们是具有完全相同功能的函数。$array = array(“i“,

5、 “love“, “iwind“); $str = implode(“ “, $array); 例中的 implode 函数将数组$array 的每个元素用空格字符进行连接,返回一个字符串 $str: “i love iwind“.5、字符串的裁剪一个字符串首和尾,可能不是你想要的部分,就可以用trim 去除一个字符串的两端空格,rtrim 去除一个字符串的尾部空格,ltrim 去除一个字符串的首部空格等函数 echo trim(“ i love iwind “); / 将得到 “i love iwind“ echo rtrim(“ i love iwind “); / 将得到 “ i lov

6、e iwind“ echo ltrim(“ i love iwind “); / 将得到 “i love iwind “ 其实这三个参数不仅可以去除字符串首尾的空格,还可以去除它们的第二个参数指定的字符,如:echo trim(“,1,2,3,4,“, “,“); / 将得到 1,2,3,4 两端的“,“号被裁掉了。 有时还会看到有人使用 chop 这个函数,其实它是 rtrim 的同义函数6、字符串大小写转换对于英文字母来说,可以用 strtoupper,strtolower 将其转变成大写或小写。echo strtoupper(“i love iwind“); / 将得到 I LOVE I

7、WIND echo strtolower(“I LOVE IWIND“); / 将得到 i love iwind7、字符串的比较一般可以用 !=, = 比较两个对象是否相等,只所以说是两个对象,是因为它们不一定全部为字符串,也可以为整型等等。比如$a = “joe“; $b = “jerry“; if ($a != $b) echo “不相等 “; else echo “相等“; 如果用 !=,=(可以看到多了一个等号)比较的话,两个对象的类型要严格相等才能返回true;否则用 =,!=则会将字符串自动转换成相应的类型,以便进行比较.22 = “22“; / 返回 true 22 = “22“

8、; / 返回 false 正因为这样,所以我们的程序时常会发生一些想不到的“意外”:0 = “我爱你 “; / 返回 true 1 = “1 我爱你“;/ 返回 true PHP 里还有这样一组用于字符串比较的函数:strcmp,strcasecmp,strncasecmp(), strncmp(),它们都是如果前者比后者大,则返回大于 0 的整数;如果前者比后者小,则返回小于 0 的整数;如果两者相等,则返回 0.它们比较的原理与 其它语言的规则都是一样的。strcmp 是用于区分大小写( 即大小写敏感) 的字符串比较:echo strcmp(“abcdd“, “aBcde“); / 返回

9、1 (0), 比较的是 “b“和“B“strcasecmp 用于不区分大小写的字符串比较:echo strcasecmp(“abcdd“, “aBcde“); / 返回 -1 (0), 比较了 abc 和 aBc strncasecmp 用于不区分大小写的比较字符串的一部分,从字符串的开头开始比较,第三个参数,为要比较的长度:echo strncasecmp(“abcdd“, “aBcde“, 3); / 返回 0, 比较了 abc 和 aBc, 由于不区分大小写,所以两者是相同的。 还有一种情况是单单比较字符串大小,达不到我们预定的要求,比如照常理 10.gif 会比 5.gif 大,但如果

10、应用上面几个函数,就会返回 -1,即表示 10.gif 比 5.gif,针对这种情况,PHP 提供了两个自然对比的函数 strnatcmp,strnatcasecmp:echo strnatcmp(“10.gif“, “5.gif“); / 返回 1 (0) echo strnatcasecmp(“10.GIF“, “5.gif“); / 返回 1 (0)8、字符串的替换替换的意义在于将一个字符串的一部分进行改变,使之成为别外一个新的字符串,以满足新的要求。PHP 里通常用 str_replace(“要替换的内容“, “要取代原内容的字符串“, “ 原字符串“) 进行替换。echo str_r

11、eplace(“iwind“, “kiki“, “i love iwind, iwind said“); / 将输出 “i love kiki, kiki said“ 即将 原字符串中的所有“iwind“都替换成了“kiki“.str_replace 是大小写敏感的,所以对你不能设想用 str_replace(“Iwind“, “kiki“,.)替换原字符串中的“iwind“.str_replace 还可以实现多对一,多对多的替换,但无法实现一对多的替换:echo str_replace(array(“iwind“, “kiki“), “people“, “i love kiki, iwind

12、 said“); 将会输出i love people, people said第一个参数中的 array(“iwind“, “kiki“)都被替换成了“people“echo str_replace(array(“iwind“, “kiki“), array(“gentle man“, “ladies“), “i love kiki, iwind said“); 输出 i love ladies, gentle man said 。也就是说第一个数组中的元素被第二个数组中的相对应的元素替换掉了,如果有一个数组比另一个数组元素数要少,那么不足的都会当作空来处理。与此有些类似的是 strtr,用法

13、请参阅手册,它们的比较请参阅 http:/ / 将输出 “abcDEF“ echo substr_replace(“abcdefgh“, “DEF“, 3, 2); / 将输出 “abcDEFfgh“ 第一个例子中,从第三个位置(即“d“)开始替换,从而把 “defgh“都替换成了“DEF”第二个例子中,也是从第三个位置(即“d“)开始替换,但只能替换 2 个长度,即到 e,所以就把“de“替换成了“DEF“.PHP 还提供了 preg_replace,preg_replace_callback,ereg_replace,eregi_replace 等函数应用正则表达式来完成字符串替换9、字符

14、串的查找与匹配PHP 里用于查找或者匹配或者定位的函数非常多,它们都有不同的意义strstr,stristr.后者与前者的功能,返回值都一样,只是不区分大小写。strstr(“母字符串 “, “子字符串“)用来查找子字符串在母字符串中第一次出现的位置,并返回母字符串中从子字符串开始到母字符串结束的部分。比如echo strstr(“abcdefg“, “e“); /将输出 “efg“ 如果找不到子字符串,则返回空。因为可以用来判断一个字符串中是否含有另外一个字符串:$needle = “iwind“; $str = “i love iwind“; if (strstr($str, $needl

15、e) echo “里面有 iwind“; else echo “里面没有 iwind“; 将会输出“里面有 iwind“HTML 相关1,htmlspecialchars($string)这是它的最简单用法,将字符串中的一些特殊字符(顾名思义) echo htmlspecialchars($str); 将会输出i love font color=redkiki/font, iwind said.2,htmlentities($string)将所有能转换成实体形式的字符都转换成实体形式。3,html_entity_decode($string);PHP4.3.0 以后加入的具有与 htmlent

16、ities($string)相反的功能。4,nl2br($string)将字符串中所有换行符转变成 + 换行符。如:$str = “i love kiki,n iwind said.“; echo nl2br($str); 将会输出i love kiki,iwind said.10、字符串的加密加密字符串最常用的就是 md5 了,它将一个字符串转换成一个长 32 位的唯一的字符串。echo md5(“i love iwind“); / 将输出 “2df89f86e194e66dc54b30c7c464c21c“ PHP5 给 md5 加了第二个参数,从而使它可以输出 16 位的加密后的字符串1

17、1、查找字符位置函数:strpos($str,search,int):查找 search 在$str 中的第一次位置从 int 开始;stripos($str,search,int):函数返回字符串在另一个字符串中第一次出现的位置。该函数对大小写不敏感strrpos($str,search,int):查找 search 在$str 中的最后一次出现的位置从 int12、加空格函数chunk_split($str,2);向$str 字符里面按 2 个字符就加入一个空格13、数据库相关函数addslashes($str):使 str 内单引号()、双引号(“)、反斜线()与 NUL字符串转换为,“

18、,。magic_quotes_gpc = On 自动对 get post cookie 的内容进行转义get_magic_quotes_gpc()检测是否打开 magic_quotes_gpcstripslashes() 去除字符串中的反斜杠13、快速创建字符串数组的函数 range()比如 range()函数可以快速创建从 1 到 9 的数字数组:当然,使用 range(9,1)则创建了 9 到 1 的数字数组。同时,range()还可以创建从 a 到 z 的字符数组:/foreach 是一种遍历数组的简便方法,foreach 仅能用于数组,当试图将其用于其它数据类型或者一个未初始化的变量时

19、会产生错误,它有两种格式:foreach (array_expression as $value) statementforeach (array_expression as $key = $value) statement第一种格式遍历给定的 array_expression 数组。每次循环中,当前单元的值被赋给 $value 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。第二种格式做同样的事,只除了当前单元的键名也会在每次循环中被赋给变量 $key使用字符数组时注意大小写,比如 range(A,z)和 range(a,Z)是不一样的。range()函数还具有第三个参数

20、,该参数的作用是设定步长,比如 range(1,9,3)创建的数组元素是:1、4、714、常规字符串数组的排序一般数组中的各元素均以字符或数字表现的,所以可对数组元素进行升序排列,该功能函数为 sort()。比如:-排序后-“;foreach ($people as $mychrs)echo $mychrs.“ “;?升序排序后的数组元素显示为 birth name nation sex,当然,sort()函数是区分字母大小写的(字母从大到小的顺序是:AZaz)Sort()函数还具有第二参数,用来说明升序的规则是用来比较数字还是字符串的。比如:“;$num2=array(26,3,);sort

21、($num2,SORT_NUMERIC);foreach ($num2 as $mychrs)echo $mychrs.“ “;echo “-按字符升序排序-“;$num3=array(26,3);sort($num3,SORT_STRING);foreach ($num3 as $mychrs)echo $mychrs.“ “;?SORT_NUMERIC 和 SORT_STRING 用来声明按数字或字符的升序排列。如果按照数字升序排列是:3,26;但如果按照字符升序排列则是:26,3 了。PHP 中除了升序函数以外,还有降序或称反向排列的函数,就是 rsort()函数,比如:$num1=ra

22、nge(1,9);rsort($num1); /这里其实就相当于 range(9,1)15、关联数组的排序PHP 除了支持数字索引数组以外,还支持相关数组。比如如下数组就是一个相关(关联)数组:$peoples=array(xm=name,xb=sex,mz=nation,cs=birth);使用 sort($peoples)默认即是按照元素定义值的升序排序,在关联数组中可使用 asort()函数表示按元素值升序排序,关联数组中最主要的则是可按照关键字(如 xm、xb、mz 等)的升序排序,该方法是用函数 ksort()函数。name,xb=sex,mz=nation,cs=birth);fo

23、reach ($peoples as $mychrs)echo $mychrs.“ “;echo “-按元素值升序排列-“;asort($peoples);foreach ($peoples as $mychrs)echo $mychrs.“ “;echo “-按关键字升序排列-“;ksort($peoples);foreach ($peoples as $mychrs)echo $mychrs.“ “;?和常规数组拥有 sort()升序函数的反向排序 rsort()降序函数相对应的,关联数组也有对应的降序函数:asort()函数和 arsort()函数、ksort()函数和krsort()函

24、数。记忆:原型函数是 sort(),其中 a、k 表示关联数组相关必须前置,反向排序使用 r 修饰。16、数组元素随机排序PHP 中使用 shuffle()函数将数组元素进行随机的重新排序,每次都会显示不同的排序组合,比如:17、PHP 数组按原顺序反向排序PHP 中可使用 array_reverse()函数将数组元素按原顺序反向排序。比如:-按原顺序反向-“;foreach ($fer as $mychrs)echo $mychrs.“ “;?output: cnbruce cnrose cnjames cnanne -按原顺序反向-cnanne cnjames cnrose cnbruce注意这里的 $fer=array_reverse($fer); 在此之前的任何排序函数均只是声明引用,并没有对原有数组进行重新定义,但当我调试该函数时则需要重新定义。这是因为 array_reverse()是返 回原数组修改后的副本,如果不需要原有数组,可对原数组重新定义达到覆盖的目的,否则就另外定义数组保存副本,比 如:$fer_bak=array_reverse($fer_bak);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报