PHP初学之字符串函数

来源:互联网 发布:爵迹 抄袭 知乎 编辑:程序博客网 时间:2024/06/13 11:32

PHP初学之字符串函数

 

按功能可分为九类;

 

番外;先说一下系统函数的模式

 

以int mb_strlen(string $str [,string $encoding]);为例



一、     字符串长度函数;

 

1、 获取字符串的字节长度,

 

int strlen(string $str);

如果 string 为空,则返回 0

 

注意;一个汉字在utf-8中占3个字节,在gbk里占2个字节

 

2、 获取字符串的字符个数,

 

int mb_strlen(string $str [,string $encoding]);

 

 $encoding;意为编码格式。Utf-8或gbk,

 

二、             查找字符串位置函数;

 

1、 查找父串中子串首次出现的位置

 

mixed strpos ( string $haystack ,mixed $needle [, int $offset = 0 ] )

 

mixed;混合类型,意思是类型不止一种,有多种情况,

haystack;父串

needle;子串或整型数值,在计算机的ascii字符集中,65到90,代表大写的A到Z,97到122,代表小写的a到z,如果这个参数是字符串,那么正常的查找,如果这个参数是整型int,那么它会换算到对应的字母

offset;偏移量,可选填,在父串的这个位置之后开始查,即这个位置之前的数据跳过

 

注意,没有找到返回false

 

2、 查找父串中子串首次出现的次数

 

int substr_count ( string $haystack , string $needle [, int $offset = 0 [, int $length ]] )

 

haystack;父串

needle;子串,区分大小写

offset;偏移量,可选填,在父串的这个位置之后开始查,即这个位置之前的数据跳过

length;可选填,在偏移量之后的搜索长度

 

三、             字符串替换函数;

 

1、  子字符串替换

 

 

mixed str_replace ( mixed $search , mixed $replace ,mixed $subject [, int &$count] )

 

search;被替换的数据

replace;要替换成的数据

subject;父串

count如果被指定,它的值将被设置为替换发生的次数。即。使用这个参数的时候,不要给它具体的值,在这个函数运行完的时候,它会自动生成值,这个值就是替换了几次,

 

注意;

如果 replace 的值的个数少于 search 的个数,多余的替换将使用空字符串来进行。就是说他们两个所占的字节数要相同

如果 search 是一个数组而 replace 是一个字符串,那么 search 中每个元素的替换将始终使用这个字符串。该转换不会改变大小写。就是说replace可以替换父串中的多个子串,

如果都是数组的时候,替换时会有先后顺序;如;str_repace(array(‘hi’,hello’),array(‘hello’,hi’),$str);

       会发现str里只有hi了

 

2、替换单个字符

 

string strtr ( string $str , string $from , string$to )

string strtr ( string $str , array $replace_pairs )

 

 

str;父串

from;被替换的字符

to;要替换成的字符

replace_pairs 可以用来取代 tofrom 参数,因为它是以array('from' =>'to', ...) 格式出现的数组。

注意;

如果 fromto 长度不相等,那么多余的字符部分将被忽略。 str 的长度将会和返回的值一样。

这个函数一般用来替换字符串中符号,数字的全角半角。

 

四、             截取子字符串函数(双字节);

 

1、 截取子串

 

    string substr ( string $string , int $start [, int$length ] )

 

       string;父串

    start;开始的位置(按字节算)

       length;正数时,代表截取的长度,负数时,代表截取结束的位置

 

2、 截取子串在父串中第一次出现前或后的数据

 

    string strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] )

 

       haystack;父串

    needle;子串

before_needle;默认为false,意为,截取首次出现后的数据,如果改为true,就是截取首次出现前的数据

 

3、 截取子串在父串中最后一次出现后的数据

 

    string strrchr ( string $haystack , mixed $needle )

 

       haystack;父串

    needle;子串

 

五、             分割、连接、反转函数;

1、  分割,将字符串转换为数组

 

array str_split ( string $str [, int $split_length = 1 ] )

 

str;父串

split_length;分割完后每个单元的长度,默认1

 

2、  根据指定的连接符,将数组拼成字符串

 

string implode ( string $glue , array $pieces )

 

glue;连接符

pieces;待拆数组

 

string implode ( array $pieces );不用连接符,直接拼

 

pieces

3、  根据指定的分割符,把字符串拆成数组

 

array explode ( string $delimiter ,string $string [, int $limit ] )

 

delimiter;分割,如逗号等

string;父串

limit;分割成多少份,正数时,多余的数据都放最后一组里,负数时,最后一组不要了,0代表1.

 

4、  反转字符串,把‘abcd‘反转成’dcba‘

 

string strrev ( string $string )

 

六、             去除、增加空格函数;

 

1、  将字符串分割成小块,就是往父串里添加连接符,如逗号之类的

 

string chunk_split (string $body [, int $chunklen = 76 [, string$end = "\r\n" ]] )

 

body;父串

chunklen;分割尺寸

end;连接符,同时会在子串的末端显示,默认是换行符

 

七、             HTML代码/数据库安全 处理有关函数;

 

1、  转义,对字符串里某些符号进行转义

 

string addslashes ( string $str )

 

str;父串

在数据库操作中‘.“.\.null.会崩库,addslashes这个函数会对这些可能产生破坏的符号进行转义,相当于自动化的给父串里的某些符号填加了一个转义符(\)

 

    2、反转义,与1相反,去除串里的转义符(\)

 

       string stripslashes( string $str )

             

              str;父串

 

3、将特殊的 HTML 实体转换回普通字符,意为,在HTML里显示某些系统默认不显示的符号

 

string htmlspecialchars_decode( string $str [, int$flags = ENT_COMPAT | ENT_HTML401 ] )

 

str;父串

flags指定如何处理引号和使用哪种文档类型

 

 

4、与3相反

 

string htmlspecialchars( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ini_get("default_charset") [, bool$double_encode = true ]]] )

 

 

八、             比较字符串函数;

 

1、  二进制安全字符串比较(区分大小写)

 

int strcmp ( string $str1 , string $str2 )

 

如果str1 小于 str2 返回 < 0; 如果 str1 大于 str2 返回 > 0;如果两者相等,返回 0。

 

 

九、             字符大小写转换函数;

 

1、  转小写

 

string strtolower ( string $string )

 

2、  转大写

 

string strtoupper ( string $string )

 

3、 字符串首字母大写

 

string ucfirst ( string $str )

 

 

 

 

练习;获取文件的后缀,如;a.jpeg.exe

              $file=a.jpeg.exe;

1、 return strrchr ( $file , ”.” )//直接找最后一个点后面的

2、 substr ( $file ,strrpos ( $file, ”.” ) )//先找点最后一次出现的位置(strrpos),再根据位置截

3、 strrev (substr ( strrev ( $file) ,0 , strpos (strrev ( $file ) , ”.” ) ) )//先把字符串反过来,再找第一个点的位置,然后截取0到3的子串,最后再反转一次

4、 pathinfo ( $file ,PATHINFO_EXTENSION) //调用系统函数pathinfo,他的作用是智能对文件名分析出若干的数据,生成一个数组,其中有一个参数extension的作用就是文件的后缀。

 

 

 

 

 

0 0
原创粉丝点击