PHP字符串处理相关函数

  • 聚客宝
  • 2021-08-06 16:54:34

(1)strpos — 查找字符串首次出现的位置 


说明

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

返回 needle 在 haystack 中首次出现的数字位置。 


参数

haystack  在该字符串中进行查找。 

needle 如果 needle 不是一个字符串,那么它将被转换为整型并被视为字符的顺序值。 

offset 如果提供了此参数,搜索会从字符串该字符数的起始位置开始统计。和 strrpos() 、 strripos() 不一样,这个偏移量不能是负数。 


返回值

返回 needle 存在于 haystack 字符串起始的位置(独立于 offset)。同时注意字符串位置是从0开始,而不是从1开始的。如果没找到 needle,将返回 FALSE 。 


Warning 

此函数可能返回布尔值 FALSE ,但也可能返回等同于 FALSE  的非布尔值。请阅读 布尔类型章节以获取更多信息。应使用 === 运算符来测试此函数的返回值。


(2)strrpos — 计算指定字符串在目标字符串中最后一次出现的位置 


说明 int strrpos  ( string $haystack  , string $needle  [, int $offset  = 0  ] )

返回字符串 haystack 中 needle 最后一次出现的数字位置。注意 PHP4 中,needle 只能为单个字符。如果 needle 被指定为一个字符串,那么将仅使用第一个字符。 


(3)strripos — 计算指定字符串在目标字符串中最后一次出现的位置(不区分大小写) 


说明 int strripos  ( string $haystack  , string $needle  [, int $offset  = 0  ] )

以不区分大小写的方式查找指定字符串在目标字符串中最后一次出现的位置。与 strrpos()  不同, strripos()  不区分大小写。


(4)substr — 返回字符串的子串 


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

返回字符串 string 由 start 和 length 参数指定的子字符串。 


(5)explode — 使用一个字符串分割另一个字符串 


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

此函数返回由字符串组成的数组,每个元素都是 string 的一个子串,它们被字符串 delimiter 作为边界点分割出来。


参数

delimiter 边界上的分隔字符。 

string 输入的字符串。 

limit 如果设置了 limit 参数并且是正数,则返回的数组包含最多 limit 个元素,而最后那个元素将包含 string 的剩余部分。 如果 limit 参数是负数,则返回除了最后的 -limit 个元素外的所有元素。 如果 limit 是 0,则会被当做 1。


(6)implode — 将一个一维数组的值转化为字符串 

说明

string implode  ( string $glue  , array $pieces  )

string implode  ( array $pieces  )

用 glue 将一维数组的值连接为一个字符串。

 

Note: 因为历史原因, implode()  可以接收两种参数顺序,但是 explode()  不行。不过按文档中的顺序可以避免混淆。 


参数

glue 默认为空的字符串。 

pieces 你想要转换的数组。 


<?php

$array  = array( 'lastname' ,  'email' ,  'phone' );

 $comma_separated  =  implode ( "," ,  $array );


echo  $comma_separated ;  // lastname,email,phone


// Empty string when using an empty array:

 var_dump ( implode ( 'hello' , array()));  // string(0) ""


 ?> 


(7)http_build_query — 生成 URL-encode 之后的请求字符串 


说明

string http_build_query  ( mixed  $query_data  [, string $numeric_prefix  [, string $arg_separator  [, int $enc_type  = PHP_QUERY_RFC1738    ]]] )


使用给出的关联(或下标)数组生成一个经过 URL-encode 的请求字符串。 


参数


query_data 

可以是数组或包含属性的对象。 一个 query_data 数组可以是简单的一维结构,也可以是由数组组成的数组(其依次可以包含其它数组)。 如果 query_data 是一个对象,只有 public 的属性会加入结果。 


numeric_prefix 

如果在基础数组中使用了数字下标同时给出了该参数,此参数值将会作为基础数组中的数字下标元素的前缀。 这是为了让 PHP 或其它 CGI 程序在稍后对数据进行解码时获取合法的变量名。 


arg_separator 

除非指定并使用了这个参数,否则会用 arg_separator.output 来分隔参数。 


enc_type 默认使用 PHP_QUERY_RFC1738 。 如果 enc_type 是 PHP_QUERY_RFC1738 ,则编码将会以 » RFC 1738 标准和 application/x-www-form-urlencoded 媒体类型进行编码,空格会被编码成加号(+)。 如果 enc_type 是 PHP_QUERY_RFC3986 ,将根据 » RFC 3986 编码,空格会被百分号编码(%20)。


<?php

$data  = array( 'foo' => 'bar' ,

               'baz' => 'boom' ,

               'cow' => 'milk' ,

               'php' => 'hypertext processor' );


echo  http_build_query ( $data ) .  "\n" ;

echo  http_build_query ( $data ,  '' ,  '&amp;' );

 ?>   


以上例程会输出:

foo=bar&baz=boom&cow=milk&php=hypertext+processor

foo=bar&amp;baz=boom&amp;cow=milk&amp;php=hypertext+processor


(8)trim — 去除字符串首尾处的空白字符(或者其他字符)


string trim  ( string $str  [, string $charlist  = " \t\n\r\0\x0B"  ] )

此函数返回字符串 str 去除首尾空白字符后的结果。如果不指定第二个参数, trim()  将去除这些字符: 

1. " " (ASCII 32 (0x20)),普通空格符。  

2. "\t" (ASCII 9 (0x09)),制表符。  

3. "\n" (ASCII 10 (0x0A)),换行符。  

4. "\r" (ASCII 13 (0x0D)),回车符。  

5. "\0" (ASCII 0 (0x00)),空字节符。  

6. "\x0B" (ASCII 11 (0x0B)),垂直制表符。