PHP函数preg_split()、explode()、implode()

zxh5566  2016-08-11 05:39   Hits: 

在进行字符串分析时,还经常需要对字符串进行分割和连接处理,同样有两种处理函数,复杂的字符串分割,可以使用正则表达式的分割函数preg_split()按模式对字符进行分割,简单的字符串分割处理,就需要使用字符串处理函数explode()进行分割。字符串的连接除了使用了可以使用点.运算符外,还可以使用字符串处理函数implode()将数组中所有的字符串元素连接成一个字符串。

1、函数preg_split()
该函数使用了perl兼容的正则表达式语法,可以按正则表达式的方法分割字符串,因此可以使用更广泛的分隔符,该函数返回一个字符串数组,数组中元素包含通过第二个参数subject中的字符串,经第一个参数的正则表达式pattern,作为匹配的边界所分割的子串,如果指定了第三个可选参数limit,则最多返回limit个子串,而其中最后一个元素包含了subject中剩余的所有部分,如果limit是-1,则意味着没有限制。还可以用来继续指定第四个可选参数flags,其中flags可以是下列标记的任意组合。

PREG_SPLIT_NO_EMPTY: 如果设定了本标记,则只返回非空的成分
PREG_SPLIT_DELIM_CAPTURE: 如果设定了本标记,定界符模式中的括号表达式也会被捕获并返回
PREG_SPLIT_OFFSET_CAPTURE: 如果设定了本标记,对每个出现的匹配结果也同时返回其附属的字符串偏移量,注意这改变了返回的数组的值,使其中的每个单元也是一个数组,其中第一项为匹配字符串,第二项为其在subject中的偏移量

<?php
$keywords = preg_split("/[\s,]/","hypertext language,programming");
print_r($keywords);

$chars = preg_split("//","lamp",-1,PREG_SPLIT_NO_EMPTY);
print_r($chars);

$chars = preg_split("/ /",'hypertext language programming',-1,PREG_SPLIT_OFFSET_CAPTURE);
print_r($chars);
?>

2、函数explode()

如果仅用某个特定的字符串进行分割,建议使用emplode()函数,它不用去调用正则表达式引擎,因此速度是最快的,该函数有三个参数,第一个参数提供一个分割字符或字符串,第二个参数是被分割的字符串,如果提供第三个参数,则指定最多将字符串分割为多少个子串。该函数返回一个由被分割的子字符串组成的数组
<?php
$lamp = "linux apache mysql php";
$lamp = explode(" ",$lamp);
?>

3、函数implode()

与分割字符串相对应的是implode()函数,把数组中的所有元素组合为一个字符串,函数join()为该函数的别名,该函数有两个参数,第一个参数glue提供一个连接字符或字符串,第二个参数pieces指定一个被连接的数组,该函数用于将数组pieces中的每个元素用指定的字符glue连接起来

<?php
$lamp = array("linux","apache","mysql","php");
echo implode("+",$lamp);
echo join("++",$lamp);
?>

上一篇:PHP字符串替换函数str_replace()
下一篇:PHP网站传到服务器后无法上传文件和图片