php使用explode分割字符串新手容易忽略的问题
来源:互联网 发布:淘宝账号和密码全忘记 编辑:程序博客网 时间:2024/06/06 09:33
1.explode方法说明
explode方法可以使一个字符串按某一个字符串作为边界点来分割成数组。
array explode ( string $delimiter , string $string [, int $limit ] )
返回由字符串组成的数组,每个元素都是string的一个子串,被字符串delimiter作为边界点分割出来。
参数说明:
delimiter
边界上的分隔字符。
string
输入的字符串
limit
如果设置了limit参数并且是正数,则返回的数组最多包含limit个元素,而最后那个元素将包含string的剩余部分。
如果limit参数是负数,则返回除了最后的-limit个元素外的所有元素。
如果limit是0,则会被当做1。
2.例子
使用,分割字符串
<?php$str = '1,2,3,4,5,6,7,8,9';$arr = explode(',', $str);echo '<pre>';print_r($arr);echo '</pre>';?>
输出:
Array( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8 [8] => 9)
使用,分割字符串,limit为正数
<?php$str = '1,2,3,4,5,6,7,8,9';$arr = explode(',', $str, 5);echo '<pre>';print_r($arr);echo '</pre>';?>
输出:
Array( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5,6,7,8,9)
使用,分割字符串,limit为负数
<?php$str = '1,2,3,4,5,6,7,8,9';$arr = explode(',', $str, -3);echo '<pre>';print_r($arr);echo '</pre>';?>
输出:
Array( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6)
使用,分割字符串,limit为0
<?php$str = '1,2,3,4,5,6,7,8,9';$arr = explode(',', $str,0);echo '<pre>';print_r($arr);echo '</pre>';?>
输出:
Array( [0] => 1,2,3,4,5,6,7,8,9)
3.容易忽略的问题
一般我们会使用explode来分割id字符串之类的数据
<?php$ids = '1,2,3,4';$data = explode(',', $ids);if($data){ foreach($data as $k=>$v){ // do sth }}?>
正常情况下ids不为空,看代码也不会发现什么问题,因为有判断if(data);一般会认为已经做了空的处理。
但实际情况却是ids=null, data却不是空,会导致foreach里执行的代码出问题。
<?php$ids = null;$data = explode(',', $ids);if($data){ print_r($data);}else{ echo 'null';}?>
因为ids=null,使用explode分割,得出的数组是Array ( [0] => )而不是Array()。
所以判断需要修改一下才能避免问题发生
<?php$ids = null;$data = explode(',', $ids);if(isset($data[0]) && $data[0]){ foreach($data as $k=>$v){ // do sth }}?>
1 0
- php使用explode分割字符串新手容易忽略的问题
- php使用explode分割字符串新手容易忽略的问题
- 使用 explode 分割字符串
- PHP字符串分割函数explode,strtok,str_spli的用法
- PHP字符串分割函数explode,strtok,str_spli的用法
- php表达式之explode() 分割字符串
- php explode函数分割字符串到数组
- PHP 字符串分割 explode 与 str_split 函数
- PHP - Manual手册 - 函数参考 - String 字符串处理函数 - explode使用一个字符串分割另一个字符串
- git使用容易忽略的问题
- 容易忽略的问题
- PHP 使用函数explode()、implode()和join()分割和连接字符串
- 字符串处理 explode--使用一个字符串分割另一个字符串
- mysql语句实现php函数explode()的分割字符串功能
- php中解决explode()函数无法分割tab键问题
- 一个容易忽略的问题
- [c++]容易忽略的问题
- C++ 容易忽略的问题
- 面向对象——类设计(三)
- 遍历聚合对象中的元素——迭代器模式
- 杭电1180——诡异的楼梯(BFS+优先队列)
- PAT (Top Level) Practise 1005Programming Pattern (35)
- 联合稀疏SOMP代码
- php使用explode分割字符串新手容易忽略的问题
- 通过汇编一个简单的C程序,分析汇编代码理解计算机工作原理
- Log4J日志配置详解
- 系统框架 springmvc mybatis Bootstrap html5 shiro maven
- WebStorm快捷键
- PAT (Top Level) Practise 1006 Tree Traversals - Hard Version (35)
- 单例模式的三种常用的形式
- Android: 解决动画完成后位置恢复到初始位置的问题
- struts2整合spring