2012-01-10 97 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