【问题标题】:php split stringphp分割字符串
【发布时间】:2011-05-07 16:27:23
【问题描述】:

您好,我有一个非常 NOOB 的问题,我想知道答案。首先我的编程语言是 VB6,在那里我可以使用 PHP 中的 Split 方法,但主要的区别是当我使用这段代码时:

$page_array = split('12s12d1a351c12a55a', 'a', 0);
echo count($page_array);

我得到结果“1”,我必须得到大于 1 的结果。那么有什么问题?你能帮帮我吗?

【问题讨论】:

    标签: php string vb6 count split


    【解决方案1】:

    如果您查看文档,您会发现您将限制设置为 0: http://php.net/manual/en/function.split.php

    split ( string $pattern , string $string [, int $limit = -1 ] )
    

    explode 的正确方法(更好的 dan split):

    $page_array = explode('12s12d1a351c12a55a', 'a');
    echo count($page_array);
    

    【讨论】:

      【解决方案2】:

      首先,不推荐使用 split()。看看docs

      另外:您正在使用最后一个参数限制结果。

      array split ( string $pattern , string $string [, int $limit = -1 ] )
      

      【讨论】:

        【解决方案3】:

        如果设置了limit,则返回数组 将包含最大限制 具有最后一个元素的元素 包含整个字符串的其余部分。

        之所以如此,是因为您将限制设置为 0 并且不使用 split 它已被弃用,而是尝试使用 explode

        $page_array = explode('a','12s12d1a351c12a55a');
        echo count($page_array);
        

        【讨论】:

          【解决方案4】:

          查看手册很重要。 split()的PHP手册很有用。

          你的代码应该是:$page_array = split('a', '12s12d1a351c12a55a');

          【讨论】:

            【解决方案5】:

            您将限制设置为 0,因此您会将整个字符串检索为 1 行(无拆分) 删除拆分语句中的 ,0 ,它也是 (delimiter, string) 而不是 (string, demeter) -> php 有一些向后的命令

            尝试:

            $page_array = split('a', '12s12d1a351c12a55a'); 回声计数($page_array);

            这应该产生:4

            【讨论】:

            • @Shakti Singh 很好地抓住了已弃用的东西,具有讽刺意味的是,我一直在使用爆炸,甚至没有抓住答案的那一部分!赞一个!
            • 为什么使用 exmplode 比使用 split 更好?
            • 正如 Shakti 所提到的,split 是一个已弃用的函数(自 PHP 5.3 起不再“支持”,只是为了向后兼容而存在),explode 本质上是相同的函数。手册还指出:使用explode()更快,不会产生正则表达式引擎的开销。
            猜你喜欢
            • 1970-01-01
            • 2023-03-08
            • 2012-07-31
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多