2013-04-02 5 views
2

Я пытаюсь получить данные из facebook. Поэтому я пытаюсь получить user_id из своих массивов.
Проблема некоторые user_id ТАК ДОЛГО, что, когда я пытаюсь получить его он возвращает что-то вродеPHP, обрабатывающий длинные целые числа

1.00003247906E+14

вместо

100003247905698

Как это исправить? Мне нужен фактический user_id.

Я попытался с помощью:

$targets = (string)($status->actor_id); 

Но его все еще возвращая то же самое.

+0

По умолчанию, PHP преобразует все целые числа, что выходит за пределы диапазона, чтобы плавать. Используйте BC Math для обработки большого целого числа (но, похоже, это немного подавляющее) – Raptor

+0

вам нужны целые числа? для большинства случаев их обработка в качестве строк должна работать. –

+0

OP уже попытался наброситься на строку – Raptor

ответ

0

Вы можете попробовать $targets = sprintf('%0.0f',$status->actor_id)

+0

Спасибо, человек. Это сработало. :) – madziikoy

0

Быстрое исправление этого:

printf("%14.0f", 1.00003247906E+14); 

напечатает

100003247905698 
+0

И откуда вы знаете, что '... 06' фактически представляет' ... 05698'? –

+0

@ ÁlvaroG.Vicario в соответствии с OP это должно быть число. –

+0

Это был просто пример. Если бы знал идентификатор заранее, он мог бы просто определить его как строку в первую очередь. 100003247905697, 100003247905698, 100003247905699 ... все они печатаются как 1.00003247906E + 14. –

0

$targets = (string)($status->actor_id); должно быть возвращение и недопустимое значение, поскольку неправильное значение должно быть уже в $ статуса

Ты на самом деле распечатывать полученный user_id напрямую (например, через print_r($status))?

+0

'$ status' не является массивом, поэтому' print_r' не будет работать – Raptor

+0

ah k Я предполагаю, что код, не отправленный в этом вопросе, вероятно, не очень хорошая идея. –

Смежные вопросы