1、字符串长度函数:
(1)、strlen():计算 字符串中 字节 的长度;
(2)、mb_strlen():根据字符编码,计算 字符串中字符 的个数;如果没有第二个参数(字符编码类型),则使用内部字符编码;
(3)、mb_internal_encoding():设置/获取内部字符编码,echo mb_internal_encoding();得到的内部字符编码为 ISO-8859-1(单字节);
2、字符串查找函数: 字符串(str)中是否存在??? (第二个参数)。从哪里开始找??(第三个参数);
(1)strpos():查找 目前字符串 在 指定字符串 中 第一次出现的位置;
注意:由于字符串的下标是从数字 “0”开始的,所以第一次出现的位置 有可能是0,故判断存在不存在的时候,条件表达式应为:if(strpos()!== false);
(2)、strrpos():查找 目前字符串 在 指定字符串 中 最后一次出现的位置;r(right) 右边的意思,即最后一次,右边第一次;
(3)、stripos():首次出现时的位置(不区分大小写);strripos():最后一次出现时的位置(不区分大小写);
$strlens){
return 0;
}
for($sum = 0,$offset = 0;($offset = strpos($str,$substr,$offset)) !== false; $offset += $substrlens, $sum++){
// offset是偏移量,这里表示子字符串在字符串中出现的位置;
// 所以,$offset(出现的位置)!==false 是永远成立的;即:数字 !== false;
// $offset < $length;这个是恒成立的,查询的字符出现的位置,永远小于字符串长度;
//注意:1、此for循环语句内部可以没有语句,第一个分号前表示初始化;第二个分号前表示成立的条件;第二个分号后,表示成立后,执行的语句;
//注意:2、($offset = strpos($str,$substr,$offset)) !== false;中,一定要设置$offset = strpos($str,$substr,$offset);如果只设置strpos($str,$substr,$offset)) !== false的时候,会出错,这样只会从(0+子字符串长度)+字串长度;而不是从查询到的位置+字串长度了;
//strpos($str,$substr,$offset) 他查询到 得出的值(位置)先赋给$offset,改变$offset他的初始偏移位置(查询到的位置+子字符串位置),然后再次新的起始位置查询;
}
return $sum;
}
echo subnum($str,$substr); // is 出现了 3 次在$str字符串中;
echo substr_count($str,$substr); // 通过内置函数计算,输出的结果 同样为 3;
?>
3、字符串 截取 函数:
(1)、substr():返回字符串的一部分; 从哪开始截,截几个; 是按照 字节 来进行计算截取的;
注意:此substr函数中第三个参数,即length(截取几个/截取到哪),如果设置成0,false或者是null的时候,则返回空字符串;这一点和数组 截取 函数 array_slice ()有些区别,array_slice()函数的第三个参数length(截取几个/截取到哪)的默认值是NULL,即:此参数如果没有实参赋值的时候,则取其默认值NULL;一直截取到末尾表示;
(2)、strstr():查找字符串的在首次原始字符串中首次出现,并返回字符串的一部分; 字符串中是否存在?
stristr():忽略大小写;
'; // 1x00fh f;
echo strrev(strstr(strrev($str),'1')); // sdfs dgfddx1x00fh fsdfs dgfddx1 ,通过字符串反转strrev()函数,可以得出其 字符 位置的前一部分;
?>