php字符串函数(四)

2014年1月29日 发表评论 阅读评论

本文将是近期关于字符串学习的最后一篇,本篇主要总结下字符串分隔的几个函数explode、split、preg_split、chunk_split、wordwrap 的用法区别和示例。

一、explode

explode是以上几个分隔函数里最简单也最常用的一个,其一共包含三个参数。具体语法如下:

explode(separator,string,limit)

其参数意义为:  

参数 描述
separator 必需。规定在哪里分割字符串。
string 必需。要分割的字符串。
limit 可选。规定所返回的数组元素的最大数目。

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

示例:

<?php
$str = 'one|two|three|four';
// 正数的 limit
print_r(explode('|', $str, 2));
// 负数的 limit(自 PHP 5.1 起)
print_r(explode('|', $str, -1));
?>

二、split

split — 用POSIX正则表达式将字符串分割到数组中,其语法中也是使用三个参数,为:

array split ( $pattern , $string [, $limit ] )

参数说明和explode基本一致,如果设定了 limit,则返回的数组最多包含 limit 个单元,而其中最后一个单元包含了 string 中剩余的所有部分。如果出错,则 split() 返回 FALSE。

示例:

<?php
list($user, $pass, $uid, $gid, $extra) =
    split (":", $passwd_line, 5);
?>
<?php
// 分隔符可以是斜线,点,或横线
$date = "04/30/1973";
list($month, $day, $year) = split ('[/.-]', $date);
echo "Month: $month; Day: $day; Year: $year<br />n";
?>

注:preg_split() 函数使用了 Perl 兼容正则表达式语法,通常是比 split() 更快的替代方案。如果不需要正则表达式的威力,则使用 explode() 更快,这样就不会招致正则表达式引擎的浪费。

三、preg_split

preg_split — 通过一个正则表达式分隔字符串,其有四个参数,语法结构为:

array preg_split( string pattern, string subject [, int limit [, int flags]] ) 

参数说明:

参数 说明
pattern 正则表达式
subject 需要匹配分割的对象
limit 可选,如果指定了 limit ,则最多返回 limit 个子串,如果 limit 是 -1,则意味着没有限制,可以用来继续指定可选参数 flags
flags

设定 limit 为 -1 后可选,可以是下列标记的任意组合(用按位或运算符 | 组合):

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

示例:

<?php
$str = "php mysql,apache ajax";
$keywords = preg_split("/[s,]+/", $str);
print_r($keywords);
?>
<?php
$str = 'string';
$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($chars);
?>
<?php
$str = "php mysql,apache ajax";
$keywords = preg_split("/[s,]+/", $str, -1, PREG_SPLIT_OFFSET_CAPTURE);
print_r($keywords);
?>

四、chunk_split

chunk_split() 函数把字符串分割为一连串更小的部分。其语法结构为:

chunk_split(string,length,end)

参数为:

参数 描述
string 必需。规定要分割的字符串。
length 可选。一个数字,定义字符串块的长度。
end 可选。字符串值,定义在每个字符串块之后放置的内容。

注:本函数不改变原始字符串。

示例1:

<?php
$str = "Hello world!";
echo chunk_split($str,1,".");
?>
输出:
H.e.l.l.o. .w.o.r.l.d.!.

例2:

<?php
$str = "Hello world!";
echo chunk_split($str,6,"...");
?>
输出:
Hello ...world!...

五、wordwrap

wordwrap() 函数按照指定长度对字符串进行折行处理。
如果成功,则返回折行后的字符串。如果失败,则返回 false。

语法:

wordwrap(string,width,break,cut)

参数:

参数 描述
string 必需。规定要进行折行的字符串。
width 可选。规定最大行宽度。默认是 75。
break 可选。规定作为分隔符使用的字符(字串断开字符)。默认是 "n"。
cut 可选。规定是否对大约指定宽度的单词进行折行。默认是 FALSE (no-wrap)。

示例:

<?php
$text = "The quick brown fox jumped over the lazy dog.";
$newtext = wordwrap($text, 20, "<br />n");
echo $newtext;
?>




本站的发展离不开您的资助,金额随意,欢迎来赏!

You can donate through PayPal.
My paypal id: itybku@139.com
Paypal page: https://www.paypal.me/361way

  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.