PHP字符串处理函数strstr()、strpos()、strrpos()、sub

zxh5566  2016-08-08 19:29   Hits: 

如果只是查找一个字符串中是否包含某个字符,建议使用strstr()或strpos()函数,如果只是简单的从一个字符串中取出一段字符,建议使用substr()函数,虽然PHP提供的字符串处理函数不能完成复杂的字符串匹配,但处理一些简单的字符串匹配,执行效率则要比正则表达式稍高一些。

函数strstr()搜索一个字符串在另一个字符串中的第一次的出现,该函数返回字符串的其余部分,从匹配点,如果未找到所搜索的字符串,则返回false,该函数对大小写敏感,如需要进行大小写不敏感的搜索,可以使用stristr()函数,该函数有两个参数,第一个参数提供被搜索的字符串,第二个参数为所搜索的字符串,如果该参数是数字,则搜索匹配数字ASCII值的字符,该函数的使用代码如下所示:

<?php
echo strstr("this is a test","test"); //输出test
echo strstr("this is a test!",115); //输出s a test!
?>

函数strpos()返回字符串的另一个字符串中第一次出现的位置,如果没有找到该字符串,则返回false,函数strrpos()和函数strpos()函数类似,用来查找字符串在另一个字符串中最后一次出现的位置,这两个函数都对大小写敏感,如需进行对大小写不敏感的搜索,可以使用stripos()和strripos()函数,函数substr()则可以返回字符串的一部分,这几个函数的应用都比较容易,下面例子结合这几个函数获取URL中的文件名称

<?php
function getFileName($url){
$location = strrpos($url,"/")+1;
$fileName = substr($url,$location);
return $fileName;
}
echo getFileName("http://bbs.zxh5566.net/index.php");

?>

函数preg_grep()

该函数是匹配数组中的元素,返回与正则表达式匹配的数组单元,该函数返回一个数组,其中包括了第二个参数input数组中与给定的第一个参数pattern模式相匹配的单元,对于输入数组input中的每个元素,只进行一次匹配

<?php
$array = array("linux redhat9.0","apache2.2.9","mysql5.0.51","php5.2.6","lamp","100");
$version = preg_grep("/^[a-zA-Z]+(\d|\.)+$/",$array);
print_r($version); //输出Array([1]=>apche2.2.9 [2]=>mysql5.5.51 [3]=>php5.2.6)
?>

上一篇:PHP中的preg_match()、preg_match_all()
下一篇:PHP函数preg_replace()