【问题标题】:PHP explode not working correctlyPHP 爆炸无法正常工作
【发布时间】:2014-02-08 05:36:19
【问题描述】:

这可能看起来微不足道,但它让我很头疼。有人可以解释原因 http://php.net/manual/es/function.explode.php 示例显示(我已修剪)。

$pizza  = "piece1 piece2 piece3"; // string
$pieces = explode(" ", $pizza);
// after a var dump
array(3) {  [0]=> string(6) "piece1" 
            [1]=> string(6) "piece2" 
            [2]=> string(6) "piece3" }

这很好用,去掉了所有的空格,并做了一个很好的小数组,但是当我使用下面显示的类似的东西时

$path = "/test-gallery/2/"; // string
$urlpieces = explode("/", $path);
// after a var dump
array(4) {  [0]=> string(0) "" 
            [1]=> string(12) "test-gallery" 
            [2]=> string(1) "2" 
            [3]=> string(0) "" }

我得到第一个和最后一个空字符串。为什么它不删除第一个和最后一个数组元素?我总是可以添加另一个步骤并删除它,但爆炸应该把它全部拿出来,不是吗?

提前感谢您的建议。

【问题讨论】:

  • 因为这是爆炸的工作原理!!!
  • 使用修剪($path,"/");爆炸前
  • 根据文档,每一个都是字符串的一个子字符串,通过在字符串分隔符形成的边界上拆分它而形成。
  • 在这里阅读 explode() 手册in2.php.net/explode
  • 感谢 Krish R,这很有帮助 :) 非常感谢。

标签: php explode


【解决方案1】:

我总是可以添加另一个步骤并将其删除,但爆炸应该 把它都拿出来不应该吗?

没有。这就是explode 的工作原理。分隔符在两端,所以"" 字符串在爆炸后在两端找到

【讨论】:

  • 感谢您的建议,正如我所提到的,这可能是一个微不足道的问题。
  • :) 至少现在不会。无论如何,我添加了 $urlpieces = array_filter($urlpieces);哪个完成了这项工作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-21
  • 2016-08-11
  • 1970-01-01
  • 2014-09-24
  • 2012-12-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多