【发布时间】:2014-02-05 18:34:42
【问题描述】:
我有一个字符串,其中包含来自 Google Calender JSON 的日期,我需要在其中检索 YYY-MM-DD 格式的日期:
"content": {
"$t": "When: Mon Jun 30, 2014 to Mon Jul 7, 2014 \n\u003cbr /\u003e\n\n\n\u003cbr /\u003eEvent Status: confirmed",
"type": "html"
},
我想过做一个使用 split 来“清理”的函数,比如:
$string = "When: Mon Jun 30, 2014 to Mon Jul 7, 2014 \n\u003cbr /\u003e\n\n\n\u003cbr /\u003eEvent Status: confirmed";
$splitOne = split(' to ',$string);
$firstDate = split('When: ', $splitOne[0]);
$secondtDate = split(' \n', $splitOne[1]);
echo $firstDate[1]; echo '<br />';
echo $secondtDate[0]; echo '<br />';
但这呼应了:
Mon Jun 30, 2014 // as expected
Mon Jul 7, 2014 \u003cbr /\u003e \u003cbr /\u003eEvent Status: confirmed // not expected, should be "Mon Jul 7, 2014"
split() 中缺少什么?顺便说一句,有没有正则表达式解决方案呢?
【问题讨论】:
-
你应该做一个
var_dump($splitOne[1]);,也许\n之前的字符不是空格。您也可以仅在\n上爆炸并修剪结果。 -
@jeroen,var_dump 给了
string(75) "Mon Jul 7, 2014 \u003cbr /\u003e \u003cbr /\u003eEvent Status: confirmed" -
那里没有
\n,所以您的解决方案和寻找\n的解决方案都不会起作用... -
@jeroen:完全正确。对我来说很神秘……知道为什么吗? phpfiddle.org/main/code/s5v-kx8
-
@jeroen, same result with explode :/