PHP将逗号分隔的值与日期分开

时间:2013-05-02 13:46:48

标签: php explode

我正在使用explode将一串逗号分隔值解析为变量。没问题。我遇到的问题是,其中一个值是格式的日期:2013年5月3日。因此爆炸在日期中以逗号为准。我有什么选择可以解决这个问题吗?我对源(原始字符串)没有多少控制权,所以我想找到一种方法来处理我所拥有的。

$CONTENT = 'blue,red,purple,May 2, 2013,orange,green';
list($valueA, $valueB, $valueC, $valueD, $valueE, $valueF) = explode(',', $CONTENT);

谢谢!

3 个答案:

答案 0 :(得分:1)

您可以使用正则表达式来拆分字符串。这是基于这样的假设:如果将两个单词用作分隔符,则两个单词之间不存在空格。

$CONTENT = 'blue,red,purple,May 2, 2013,orange,green';
$result = preg_split('/,(?! )/', $CONTENT);

您的字符串将在

中正确显示
array(6) {
   [0]=>
      string(4) "blue"
   [1]=>
      string(3) "red"
   [2]=>
      string(6) "purple"
   [3]=>
      string(11) "May 2, 2013"
   [4]=>
      string(6) "orange"
   [5]=>
     string(5) "green"
}

所以一旦再次使用列表表达式,就应该正确设置变量

list($valueA, $valueB, $valueC, $valueD, $valueE, $valueF) = preg_split('/,(?! )/', $CONTENT);

答案 1 :(得分:0)

通过查找数组中的值并使用特殊符号替换逗号来转义逗号,然后在爆炸后用逗号替换特殊符号。

答案 2 :(得分:0)

我唯一能想到的是使用正则表达式查找与日期模式匹配的内容,用其他内容替换逗号,然后在分解字符串后,再次使用逗号替换该特殊字符。

它很乱,但是如果你真的无法控制进入的字符串,你可能做的事情可能不多。