首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用PHP ()函数时的“空分隔符”警告

使用PHP ()函数时的“空分隔符”警告
EN

Stack Overflow用户
提问于 2017-04-11 13:29:15
回答 4查看 17.5K关注 0票数 13

在javascript中,var myStringToArray = myString.split('');是完全可以接受的。

但是在PHP中,$My_String_To_Array = explode('', $My_String);抛出一个错误:

警告:爆炸性()空分隔符

PHP手册(http://php.net/manual/en/function.explode.php)解释道:

如果分隔符是空字符串(""),FALSE()将返回FALSE

那么我应该在当代的PHP中使用什么而不是explode('', $My_String)呢?

到目前为止,我能看到的替代方案是:

  • split("", $My_String) --反对PHP5.3.0
  • str_split($My_String)
  • preg_split('//', $My_String)

七年前,str_split()应该是正确的选择。

但是,str_split()是否仍在当代用法中,还是应该只看preg_split()

还是我应该看别的东西?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-04-11 14:10:34

如果处理多字节UTF-8字符串,则应使用:

代码语言:javascript
运行
复制
$array = preg_split('//u', $My_String,-1, PREG_SPLIT_NO_EMPTY);

否则,您只需使用:

代码语言:javascript
运行
复制
$array = str_split($My_String);

原因在手册中有说明。

当处理多字节编码字符串时,str_split()将拆分为字节,而不是字符。

从PHPVersion7.4开始,添加了相当于str_split的mbstring,因此您现在可以使用:

代码语言:javascript
运行
复制
$array = mb_str_split($my_string);

手册页

票数 27
EN

Stack Overflow用户

发布于 2017-04-11 13:37:20

我认为str_split是你想要的

拆分-将字符串转换为数组

代码语言:javascript
运行
复制
<?php
$arr = str_split("Hello");
?>

将产生

代码语言:javascript
运行
复制
Array
(
    [0] => H
    [1] => e
    [2] => l
    [3] => l
    [4] => o
}
票数 9
EN

Stack Overflow用户

发布于 2017-04-11 13:55:37

第一个参数是必需的

代码语言:javascript
运行
复制
explode(separator,string,limit)

[separator]: required;
[string]: required;
[limit]: alternative.

带空分离器的爆炸功能是没有意义的。

就这样。O(∩_∩)O~

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43347404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档