scanf — неверные результаты при использовании sscanf в переполнении стека

Вот код, который я использую. Результаты неверны, как и должно быть!

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

Но результаты я получаю

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

Результаты должны быть:

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

Что я делаю не так? как я могу это исправить?

0

Решение

без str_replace для запятых, вы можете сделать это как

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

дает тебе

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

Вы можете опустить запятую в самом шаблоне.

0

Другие решения

Речь идет о запятой, удалите ее из формата:

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

это должно вернуть:

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

Если вам не нужна запятая в результате, вы можете удалить ее из первого массива с помощью str_replace или что-то

0

Если вы не хотите запятую, попробуйте это:

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

выход: Array ( [0] => Sept [1] => 30th [2] => 2014 )

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);
0
По вопросам рекламы [email protected]