PHP strtok()函数的优点分析
2015-01-24信息快讯网
相对于explode()来说,strtok()函数可以控制节奏。按需切割字串。
其优点是:1、可以一次定义多个分隔符。函数在执行时,是按单个分隔符来切割,而不是按整个分隔符,而explode则是按整个分隔串来切割的。正因此,explode可以用中文切割,而strtok则不行,会乱码。
2、在使用while或for配合strtok()遍历时,可以随时更换分隔符,也可以随时用break跳出终止切割。
示例1:演示用中文+explode来切割
$string = "这是PHP论坛 论坛版块 论坛栏目 论坛H管理员 论坛会员"; $arr = explode("论坛",$string); foreach($arr as $v) { echo $v."<br />"; } echo "-------------<br />"; |
返回:
这是PHP 版块 栏目 H管理员 会员 ------------- |
示例2:演示更换切割符,注意后面WHILE中不再带有“H”分隔符。而只是用空格。
$string = "这是PHP论坛 论坛版块 论坛栏目 论坛H管理员 论坛会员"; $tok = strtok($string, " H"); //空格+H $n=1; while ($tok !== false) { echo "$tok<br />"; $tok = strtok(" "); //空格 //if($n>2)break; //可以随时跳出。 //$n++; } echo "-------------<br />"; |
返回:
这是P P论坛 论坛版块 论坛栏目 论坛H管理员 论坛会员 ------------- |
示例3:演示多分隔符。
$string = "This is\tan example\nstring"; $tok = strtok($string, " \n\t"); #空格,换行,TAB while ($tok !== false) { echo "$tok<br />"; $tok = strtok(" \n\t"); } echo "-------------<br />"; |
返回:
This is an example string ------------- |
$string = "abcde 123c4 99sadbc99b5232"; $tok = strtok($string, "bc"); while ($tok !="") { echo "$tok<br />"; $tok = strtok("bc"); } echo "-------------<br />"; |
返回:
a de 123 4 99sad 99 5232 ------------- |
示例4:演示用for来遍历:
$line = "leon\tatkinson\[email protected]"; for($token = strtok($line,"\t");$token!="";$token=strtok("\t")) { print("token: $token<BR>\n"); } |
返回:
token: leon token: atkinson token: [email protected] |
9个PHP开发常用功能函数小结
PHP 字符串正则替换函数preg_replace使用说明
php入门学习知识点七 PHP函数的基本应用
php自定义函数call_user_func和call_user_func_array详解
php array_push()数组函数:将一个或多个单元压入数组的末尾(入栈)
php设计模式 Strategy(策略模式)
Warning: session_destroy() : Trying to destroy uninitialized sessionq错误
php中session_unset与session_destroy的区别分析
php错误提示failed to open stream: HTTP request failed!的完美解决方法
php 截取字符串并以零补齐str_pad() 函数
PHP clearstatcache()函数详解
关于PHP5 Session生命周期介绍
discuz authcode 经典php加密解密函数解析
php str_pad() 将字符串填充成指定长度的字符串
收藏的PHP常用函数 推荐收藏保存
php 魔术函数使用说明
判断是否为指定长度内字符串的php函数
支持数组的ADDSLASHES的php函数
php addslashes和mysql_real_escape_string
PHP strtotime函数详解
Php 构造函数construct的前下划线是双的_
php面向对象全攻略 (十一)__toString()用法 克隆对象 __call处理调用错误
PHP令牌 Token改进版