php有没有或类似indexOf的方法strpos、stripos

php类似java的indexOf、lastIndexOf方法

知兮丶青
阅读(2513) 2017-12-07
php有没有或类似indexOf的方法strpos、stripos
php有没有或类似indexOf的方法strpos、stripos

indexOf在java中或在js中常常被用到,那么php有没有呢?来看看php中类似indexOf的相关方法。


参数简介

@param string $haystack 要搜索的字符串

@param mixed $needle 要查找的字符

@param int $offset [可选]开始搜索的位置

@return int|boolean 返回针存在相对的起点的位置,如果找不到针,则返回false。注意字符串位置从0开始,而不是从1开始。


类似indexOf

//strpos — 查找字符串首次出现的位置
function strpos ($haystack, $needle, $offset = 0) {}

//stripos — 查找字符串首次出现的位置(不区分大小写)
function stripos ($haystack, $needle, $offset = null) {}

例子:

//大小写敏感
var_dump(strpos("weizhixi.com","i"));
//int 2
var_dump(strpos("weizhixi.com","I"));
//boolean false

//大小写不敏感
var_dump(stripos("weizhixi.com","i"));
//int 2
var_dump(stripos("weizhixi.com","I"));
//int 2


类似lastIndexOf

//strrpos — 查找字符串最后一次出现的位置
function strrpos ($haystack, $needle, $offset = 0) {}

//strripos — 查找字符串最后一次出现的位置(不区分大小写)
function strripos ($haystack, $needle, $offset = null) {}

例子:

//大小写敏感
var_dump(strrpos("weizhixi.com","i"));
//int 7
var_dump(strrpos("weizhixi.com","I"));
//int 7

//大小写不敏感
var_dump(strripos("weizhixi.com","i"));
//int 7
var_dump(strripos("weizhixi.com","I"));
//int 7


简单应用

//这里要用全等于===或不全等于!==。因为位置从0开始算,可能会返回0
if(strpos('abc','a')!==false){
	echo '存在';
}else{
	echo '不存在';
}
//string 存在

echo substr('abc.jpg', strpos('abc.jpg','.')+1);
//jpg

类似java中

if("abc".indexOf("a")!=-1){
	System.out.println("存在");
}else{
	System.out.println("不存在");
}

System.out.println("abc.jpg".substring("abc.jpg".indexOf(".")+1));
//jpg


原创文章,转载请注明出处:https://www.weizhixi.com/article/22.html