PHP基础教程(十一)字符串函数详解

来源:互联网 发布:最流行的网络用语 编辑:程序博客网 时间:2024/05/21 17:31

1.字符串长度函数

字符串长度函数:strlen(); 计算的是字符串的字节长度; mb_strlen(); 是根据编码计算字符串的字符个数。

utf-8 编码规则中,一个中文占三个字节,gbk 编码格式中是一个汉字占两个字节。

2.查找字符串中子字符串位置的函数

strpos ( string $haystack , mixed $needle [, int $offset = 0 ] ); 第二个参数的意思是可以传混合类型;(无论是在字符串中还是在数组中都是从零开始读取其中内容的)。

offset 的作用,除了第一次出现的字符,这个字符第二次还会不会出现?offset 的意思就是说,把光标先偏移一段距离,再查找,别从头开始查找。

在计算机里,ascll 字符集中,如果你的第二个参数写的是整形,则把它理解为 ascll 字符的编码。

注意,当你查找的字符在字符串中的第一个位置时,如果用简单的 if 判断,此时的函数并不能识别第一个找到的字符,因为字符串是从零开始识别的。所以这时候你要这样用:注意这里的===(去等于号)(在 strpos 这里三等于和两等于的区别很好的体现出来了)。

思考题:用for循环或while循环,配置strpos,计算某父串中子串的个数?

<?php    function subnum($str, $sub){        //子串的长度        $sublen = strlen($sub);        //父串的长度        $strlen = strlen($str);        if($sublen > $strlen){            return 0;        }        for($offset=0,$num=0; ($offset=strpos($str,$sub,$offset)) != false;){            $num += 1;            $offset += $sublen;        }        return $num;    }    $str = 'wo ni ta ta ni wo wo';    $sub = 'wo';    echo subnum($str,$sub);/*php的字符串函数非常强大,你要是不了解,可能会多花很多的冤枉时间,做很多的无用功,去费力写出一个函数,结果其实早就已经存在。其实只需要一个函数帮你解决问题了,所以一定要熟悉php的字符串函数(上面的那个思考题,可以直接用一个字符串函数实现,比如说substr_count())。*/