WordPress: объяснение строковых значений Plugins & Theme в базе данных

я установил wordpress, и я установил пару плагинов, и у меня есть две темы, уже пришедшие с wordpress.

То, о чем я прошу сегодня, следующее: что означает значение строки Plugins & Theme в базе данных?

Пример [Когда плагины активны], в таблице указано значение:

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» от ЗДЕСЬ , но «s:» – это то, что я не знаю, что это значит. Если я попытался изменить s: 37 на s: 6 или любое другое значение, плагин будет деактивирован, поэтому s: 37 <<< the 37 должен каким-то образом означать или связать с плагином, и это то, что я пытаюсь выяснить.

Solutions Collecting From Web of "WordPress: объяснение строковых значений Plugins & Theme в базе данных"

Значение представляет собой сериализованный php-массив . Дальнейшее объяснение на самом деле не является специфичным для WordPress, но здесь вы идете – «s» – это длина строкового представления последующего элемента массива (длина строки в кавычках). IE в

a:2:{s:12:"twentyeleven";s:7:"/themes";s:9:"twentyten";s:7:"/themes";}

«12» в s:12 представляет длину twentyeleven .

Эти значения сериализуются . Их не следует вручную редактировать.

РЕДАКТИРОВАТЬ:

Чтобы разработать, вы можете манипулировать этими значениями через WordPress, используя следующие функции (в зависимости от того, хранятся ли они как параметры или как сообщение мета):

get_option () update_option () get_post_meta () update_post_meta ()

Это сериализованные строки или массивы / объекты, преобразованные в строку, которая будет храниться в базе данных.

Они не будут распознавать любые изменения, которые вы вносите в саму строку, и будете бросать ошибки, если попытаетесь вмешаться в них. Они построены в моде, чтобы гарантировать, что данные, которые были там до сериализации, – это точно такие же данные, которые будут возвращены после того, как вы несериализуете его.

Чтобы иметь возможность изменить значение, сначала необходимо выполнить его неэтериализацию :

 $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" }