RSS订阅
PHP程序员站--WWW.PHPERZ.COM  
网站地图
高级搜索
收藏本站

 当前位置:主页 >> PHP基础 >> 新手专区 >> 文章内容
PHP 字符串操作入门教程
[收藏此页[打印本页]   
来源:互联网  作者:未知  发布时间:2008-01-09




PHP里还有这样一组用于字符串比较的函数:strcmp,strcasecmp,strncasecmp(), strncmp(),它们都是如果前者比后者大,则返回大于0的整数;如果前者比后者小,则返回小于0的整数;如果两者相等,则返回0.它们比较的原理与其它语言的规则都是一样的。
strcmp是用于区分大小写
(即大小写敏感)
的字符串比较:

echo strcmp("abcdd""aBcde"); // 返回 1 (>0), 比较的是 "b"和"B"

www~phperz~.com




strcasecmp用于不区分大小写的字符串比较:

echo strcasecmp("abcdd""aBcde"); // 返回 -1 (<0), 比较的是"d"和"e" 



strncmp用于比较字符串的一部分,从字符串的开头开始比较,第三个参数,为要比较的长度:
PHP程序员站--PHP程序员之家


echo strncmp("abcdd""aBcde"3); // 返回 1 (>0), 比较了 abc 和 aBc 



strncasecmp用于不区分大小写的比较字符串的一部分,从字符串的开头开始比较,第三个参数,为要比较的长度: PHP程序员站

echo strncasecmp("abcdd""aBcde"3); // 返回 0, 比较了 abc 和 aBc, 由于不区分大小写,所以两者是相同的。 



还有一种情况是单单比较字符串大小,达不到我们预定的要求,比如照常理 10.gif 会比 5.gif 大,但如果应用上面几个函数,就会返回 -1,即表示 10.gif比5.gif,针对这种情况,PHP提供了两个自然对比的函数strnatcmp,
strnatcasecmp: www~phperz~.com

echo strnatcmp("10.gif""5.gif"); // 返回 1 (>0) 
echo strnatcasecmp("10.GIF""5.gif"); 
// 返回 1 (>0) 
PHP程序员站--PHP程序员之家


替换

替换的意义在于将一个字符串的一部分进行改变,使之成为别外一个新的字符串,以满足新的要求。PHP里通常用str_replace
("要替换的内容""要取代原内容的字符串""原字符串")
进行替换。

echo str_replace("iwind""kiki""i love iwind, iwind said"); // 将输出 "i love kiki, kiki said" 即将 原字符串中的所有"iwind"都替换成了"kiki".
PHP程序员站--PHP程序员之家



str_replace是大小写敏感的,所以对你不能设想用 str_replace("IWIND""kiki",...)替换原字符串中的"iwind"
.

str_replace还可以实现多对一,多对多的替换,但无法实现一对多的替换:

echo str_replace(array("iwind""kiki"), "people""i love kiki, iwind said"); 

www.phperz.com



将会输出
i love people
people said
第一个参数中的array
("iwind""kiki")都被替换成了
"people"


echo str_replace(array("iwind""kiki"), array("gentle man""ladies"), "i love kiki, iwind said"
); 
www phperz com

输出 i love ladies
gentle man said 。也就是说第一个数组中的元素被第二个数组中的相对应的元素替换掉了,如果有一个数组比另一个数组元素数要少,那么不足的都会当作空来处理。

与此有些类似的是strtr
,用法请参阅手册
.

此外,PHP还提供了substr_replace,
实现替换一部分的字符串。语法如下:
substr_replace 
(原字符串要替代的字符串开始替换的位置 [, 替换的长度
]) PHP程序员站
其中,开始替换的位置从0开始计算,应该小于原字符串的长度。要替换的长度是可选的。

echo substr_replace("abcdefgh""DEF"3); // 将输出 "abcDEF" 
echo substr_replace("abcdefgh""DEF"32); 
// 将输出 "abcDEFfgh" 

PHP程序员站




第一个例子中,从第三个位置(即"d")开始替换,从而把 "defgh"都替换成了&ldquo;DEF&rdquo
;
第二个例子中,也是从第三个位置(即"d")开始替换,但只能替换2个长度,即到e,所以就把"de"替换成了"DEF"
. www phperz com

PHP还提供了preg_replace,preg_replace_callback,ereg_replace,eregi_replace等函数应用正则表达式来完成字符串替换,
用法请参考手册。

查找与匹配

PHP里用于查找或者匹配或者定位的函数非常多,它们都有不同的意义。这里只讲述用得比较多的strstr
,stristr.
后者与前者的功能,返回值都一样,只是不区分大小写。
strstr
("母字符串""子字符串")用来查找子字符串在母字符串中第一次出现的位置,
并返回母字符串中从子字符串开始到母字符串结束的部分。比如 PHP程序员站

echo strstr("abcdefg""e"); //将输出 "efg" 

如果找不到子字符串,则返回空。因为可以用来判断一个字符串中是否含有另外一个字符串:

$needle "iwind"www phperz com
$str "i love iwind"

if (
strstr($str$needle
)) 

echo 
"里面有 iwind"


else 

echo 
"里面没有 iwind"



将会输出
"里面有 iwind" phperz.com


HTML相关

1
,htmlspecialchars($string
)

这是它的最简单用法,将字符串中的一些特殊字符(顾名思义)&,'
,"<,>转换成它们对应的HTML实体形式:


$str = "i love <font color="red">kiki</font>, iwind said."; 
echo htmlspecialchars($str); 


将会输出
i love <font color="red">kiki</font>, iwind said.

2,htmlentities($string)

将所有能转换成实体形式的字符都转换成实体形式。

3,html_entity_decode($string);

PHP4.3.0以后加入的具有与htmlentities($string)相反的功能。 www.phperz.com

4,nl2br($string)

将字符串中所有换行符转变成
+ 换行符。如:


$str = "i love kiki,n iwind said."; 
echo nl2br($str); 


将会输出
i love kiki,

iwind said.

加密

加密字符串最常用的就是md5了,它将一个字符串转换成一个长32位的唯一的字符串。

echo md5("i love iwind"); // 将输出 "2df89f86e194e66dc54b30c7c464c21c" 


PHP5给md5加了第二个参数,从而使它可以输出16位的加密后的字符串。

到这里,这篇字符串操作入门教程就算结束了,但上面讲的这些还只是它的冰山一角,特别是PHP5之后增加了大量的新功能,所以需要我们不断的去学习它才有可能很好的应用。
PHP程序员站


 上一篇:解决phpmyadmin 乱码,支持gb2312和utf-8   下一篇:PHP生成静态页面详解
 
 相关文章
 
发表评论
全部评论(0条)
 
 站内搜索
 热门搜索 mysql  基础  php基础  url
高级搜索 网站地图 站长工具 IP查询 收藏本站
 热点文章
 随机推荐
网站首页 | 网站地图 | 高级搜索 | RSS订阅
PHP程序员站 Copyright © 2007,PHPERZ.COM All Rights Reserved 粤ICP备07503606号 联系站长