在PHP中使用sscanf导致错误的结果

时间:2014-09-30 09:23:08

标签: php scanf

这是我正在运行的代码结果是错误的,因为它们应该是!

$results = sscanf("Sept 30th, 2014 ", "%s , %s, %d");
print_r($results);

但我得到的结果

(
   [0] => Sept
   [1] => 
   [2] => 
)

结果应该是:

(
  [0] => Sept
  [1] => 30th
  [2] => 2014
)

我做错了什么?我该如何解决这个问题?

4 个答案:

答案 0 :(得分:0)

这是关于逗号,将其从格式中删除:

$results = sscanf("Sept 30th, 2014 ", "%s %s %d");

这应该返回:

Array
(
    [0] => Sept
    [1] => 30th,
    [2] => 2014
)

如果您不想在结果中使用逗号,可以使用str_replace或其他内容从第一个数组中删除它

答案 1 :(得分:0)

试试这个:

$results = sscanf(" Sept 30th, 2014 ", "%s  %s %d");
$results[1]=str_replace(',','',$results[1]);// this can be done for entire array also.
print_r($results);

答案 2 :(得分:0)

如果您不想使用逗号,请尝试以下操作:

$results = sscanf("Sept 30th, 2014 ", "%s %s %d");
$results = str_replace(',', '',$results);
print_r($results);

输出:Array ( [0] => Sept [1] => 30th [2] => 2014 )

答案 3 :(得分:0)

没有str_replace逗号,你可以像

一样
$results = sscanf("Sept 30th, 2014 ", "%s %[^','], %d");
print_r($results);

给你

Array ( [0] => Sept [1] => 30th [2] => 2014 )

你可以在模式中省略逗号。