Pull to refresh

Простые вещи: Сериализация массива в JavaScript для последующей десериализации в PHP.

Reading time1 min
Views2.3K
Наш следующий хабратопик будет посвящен сериализации массивов в JavaScript для последующей десериализации в PHP. Таким образом в нашей системе CMS S.Builder, например, реализовано сохранение настроек интерфейса визуального редактора – пользователь помечает кнопки тулбара, которые нужно показывать в визуальном редакторе, указывает другие настройки, затем жмет Сохранить. Формируется массив настроек, затем он сериализуется и передается AJAX-ом на сервер. На сервере полученная строка пишется в базу. При выводе тулбара PHP-скрипт обращается к базе, вытаскивает строку, десериализует массив и затем выводит нужные кнопки и пр.

Функция сериализации довольно проста и состоит из нескольких строк:

  1. function sbSerialize (a)
  2. {
  3.   var res = "";
  4.   var total = 0;
  5.   for (var key in a)
  6.   {
  7.     total++;
  8.     res += "s:" + String(key).length + ":\"" + String(key).replace(/"/g, "\\\"") + "\";s:" + String(a[key]).length + ":\"" + String(a[key]).replace(/"/g, "\\\"") + "\";";
  9.   }
  10.   res = "a:" + total + ":{" + res + "}";
  11.   return res;
  12. }
* This source code was highlighted with Source Code Highlighter.


Функции передается массив, который необходимо сериализовать, возвращается строка.

В PHP соотв. для десериализации просто вызываем unserialize. Надеемся, кому-нибудь это понадобится.

Так же есть интересный пример тут:

kevin.vanzonneveld.net/techblog/article/javascript_equivalent_for_phps_serialize
Tags:
Hubs:
+10
Comments27

Articles