我已经安装了wordpress,我已经安装了几个插件,wordpress已经提供了两个主题。
今天我想问的是:插件和;数据库中的主题字符串值是什么意思?
示例[当插件处于活动状态时],表中有一个值:
a:3:{i:0;s:19:"akismet/akismet.php";i:1;s:9:"hello.php";i:2;s:37:"one-click-logout/one-click-logout.php";}
示例[主题文件夹中有主题时],表中有一个值:
a:2:{s:12:"twentyeleven";s:7:"/themes";s:9:"twentyten";s:7:"/themes";}
我可以从中得到“a”和“I”是什么意思的解释
HERE , 但“s:”是我不知道的意思。如果我尝试将s:37更改为s:6或任何其他值,插件将被停用,因此s:37<<<;37一定是有什么意思或与插件有什么关系,这就是我想知道的。
最合适的回答,由SO网友:jessica 整理而成
值为serialized php array. 进一步的解释并不是特定于WordPress的,但这里您可以看到-‘s’是后续数组元素的字符串表示的长度(引号中字符串的长度)。一、 E.英寸
a:2:{s:12:"twentyeleven";s:7:"/themes";s:9:"twentyten";s:7:"/themes";}
中的“12”
s:12
表示的长度
twentyeleven
.
SO网友:moraleida
这些是serialized strings, 或转换为字符串以存储在数据库中的数组/对象。
它们不会识别您对字符串本身所做的任何更改,如果您试图篡改它们,它们将抛出错误。它们以某种方式构建,以确保序列化之前存在的数据与取消序列化后返回的数据完全相同。
要能够更改值,您需要unserialize it优先:
$string = \'a:2:{s:12:"twentyeleven";s:7:"/themes";s:9:"twentyten";s:7:"/themes";}\';
$array = unserialize($string);
var_dump($array);
结果如下:
array(2) { ["twentyeleven"]=> string(7) "/themes" ["twentyten"]=> string(7) "/themes" }