2012-01-10 131 views
1

所以我知道當一個文件上傳到Drupal時,你會得到fid作爲回報,你可以在數據庫的files表中找到它。我一直看到如下所示的字符串,我希望有人能夠解釋每個部分。文件上傳返回值

a:2:{i:0;s:4:"9201";i:1;s:4:"9206";} 

我可以看到,這裏的FIDS分別爲9201和9206,和我假設i:0i:1有文件被上傳的順序做。但剩下的是什麼?

另外,如果很重要,這個特定的字符串是來自具有多文件上傳字段的表單數據的print_r的結果。

回答

2

這是一個從PHP的serialize()函數的返回值時,通過數組等同於以下:

array(
    0 => "9201", 
    1 => "9206" 
) 

您可以使用反向的unserialize()過程。

Drupal(像很多應用程序)將一些設置保存在序列化的字符串中,而不是爲每個可能的設置創建數據庫表。

EDIT

只需添加,a:2意味着變量的跟隨類型與2種元素和s:4陣列裝置變量的類型是具有4個字符的字符串。 i表示整數類型。

+0

完美,謝謝!那麼還有什麼更多的a:2和s:4部分? – redgem 2012-01-10 23:06:21

+0

@RodneyKeeling:忘記了,我已經更新了答案:) – Clive 2012-01-10 23:07:52