冒号在数据库中分隔值

时间:2011-09-23 17:06:46

标签: php mysql regex database

我的数据库结果如下:

s:6:hobbit

s是“string”,值是第三部分中的字符数。这个叫什么?冒号分隔值?是通过正则表达式在PHP中处理它的唯一方法吗?

具体来说,我正在尝试获取值hobbit。但显然当我访问数据库获取任何内容时,我得到了整个值s:6:hobbit。我注定要使用正则表达式来处理这样的结果吗?

2 个答案:

答案 0 :(得分:9)

看起来像serialize()的输出。 (提示:unserialize() *)

或者,您可以使用explode():limit=3。这很重要,因为字符串本身(来自第二个:前进的所有内容)可能包含冒号。

另外,为什么DB中的这些值首先出现?


*) 编辑似乎serialize()会将字符串编码为s:6:"hobbit"(引用),以便explode()可以证明是这样做的方法。

答案 1 :(得分:3)

list($tmp, $tmp, $string) = explode(':', $dbString);
echo $string;

演示:http://codepad.org/z91CztFm