Как стать автором
Обновить

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

Время на прочтение1 мин
Количество просмотров2.5K
Наш следующий хабратопик будет посвящен сериализации массивов в 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
Теги:
Хабы:
Всего голосов 30: ↑20 и ↓10+10
Комментарии27

Публикации

Истории

Ближайшие события

15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань