2013-04-02 84 views
2

我想從Facebook獲取數據。所以我嘗試從他們的數組中獲得user_id
問題是一些user_id都這麼久了,當我試圖把它返回像PHP處理長整數

1.00003247906E+14

,而不是

100003247905698

我該如何解決這個問題?我需要實際的user_id

我試着使用:

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

,但它仍然返回相同的。

+0

默認情況下,PHP將轉換所有整數是超出範圍浮動。使用BC數學來處理大整數(但似乎有點壓倒性) – 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 。我想假設代碼沒有發佈在這個問題可能不是一個好主意 –