php字符串函数(四)
本文将是近期关于字符串学习的最后一篇,本篇主要总结下字符串分隔的几个函数explode、split、preg_split、chunk_split、wordwrap 的用法区别和示例。
一、explode
explode是以上几个分隔函数里最简单也最常用的一个,其一共包含三个参数。具体语法如下explode(separator,string,limit)
其参数意义为:
参数 | 描述 |
---|---|
separator | 必需。规定在哪里分割字符串。 |
string | 必需。要分割的字符串。 |
limit | 可选。规定所返回的数组元素的最大数目。 |
注:如果设置了 limit 参数并且是正数,则返回的数组包含最多 limit 个元素,而最后那个元素将包含 string 的剩余部分;如果 limit 参数是负数,则返回除了最后的 -limit 个元素外的所有元素;如果 limit 是 0,则会被当做 1。
示例:
1<?php
2$str = 'one|two|three|four';
3// 正数的 limit
4print_r(explode('|', $str, 2));
5// 负数的 limit(自 PHP 5.1 起)
6print_r(explode('|', $str, -1));
7?>
二、split
split — 用POSIX正则表达式将字符串分割到数组中,其语法中也是使用三个参数,为:
1array split ( $pattern , $string [, $limit ] )
参数说明和explode基本一致,如果设定了 limit,则返回的数组最多包含 limit 个单元,而其中最后一个单元包含了 string 中剩余的所有部分。如果出错,则 split() 返回 FALSE。示例:
1<?php
2list($user, $pass, $uid, $gid, $extra) =
3 split (":", $passwd_line, 5);
4?>
5<?php
6// 分隔符可以是斜线,点,或横线
7$date = "04/30/1973";
8list($month, $day, $year) = split ('[/.-]', $date);
9echo "Month: $month; Day: $day; Year: $year<br />n";
10?>
注:preg_split() 函数使用了 Perl 兼容正则表达式语法,通常是比 split() 更快的替代方案。如果不需要正则表达式的威力,则使用 explode() 更快,这样就不会招致正则表达式引擎的浪费。
三、preg_split
preg_split — 通过一个正则表达式分隔字符串,其有四个参数,语法结构为:
1array 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 中的偏移量。 |
示例:
1<?php
2$str = "php mysql,apache ajax";
3$keywords = preg_split("/[s,]+/", $str);
4print_r($keywords);
5?>
6<?php
7$str = 'string';
8$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
9print_r($chars);
10?>
11<?php
12$str = "php mysql,apache ajax";
13$keywords = preg_split("/[s,]+/", $str, -1, PREG_SPLIT_OFFSET_CAPTURE);
14print_r($keywords);
15?>
四、chunk_split
chunk_split() 函数把字符串分割为一连串更小的部分。其语法结构为:chunk_split(string,length,end)
,参数为:
参数 | 描述 |
---|---|
string | 必需。规定要分割的字符串。 |
length | 可选。一个数字,定义字符串块的长度。 |
end | 可选。字符串值,定义在每个字符串块之后放置的内容。 |
注:本函数不改变原始字符串。
示例1:
1<?php
2$str = "Hello world!";
3echo chunk_split($str,1,".");
4?>
5输出:
6H.e.l.l.o. .w.o.r.l.d.!.
例2:
1<?php
2$str = "Hello world!";
3echo chunk_split($str,6,"...");
4?>
5输出:
6Hello ...world!...
五、wordwrap
wordwrap() 函数按照指定长度对字符串进行折行处理。 如果成功,则返回折行后的字符串。如果失败,则返回 false。
语法:wordwrap(string,width,break,cut)
参数:
参数 | 描述 |
---|---|
string | 必需。规定要进行折行的字符串。 |
width | 可选。规定最大行宽度。默认是 75。 |
break | 可选。规定作为分隔符使用的字符(字串断开字符)。默认是 “n”。 |
cut | 可选。规定是否对大约指定宽度的单词进行折行。默认是 FALSE (no-wrap)。 |
示例:
1<?php
2$text = "The quick brown fox jumped over the lazy dog.";
3$newtext = wordwrap($text, 20, "<br />n");
4echo $newtext;
5?>
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/php-strings-explode-split-wordwrap/3029.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.