tomvangoethem / serialized Goto Github PK
View Code? Open in Web Editor NEWThis project forked from ktomk/serialized
PHP Library for Serialized Data
Home Page: https://github.com/ktomk/Serialized/
License: GNU Affero General Public License v3.0
This project forked from ktomk/serialized
PHP Library for Serialized Data
Home Page: https://github.com/ktomk/Serialized/
License: GNU Affero General Public License v3.0
Serialized - PHP Library for Serialized Data Copyright (C) 2010-2011 Tom Klingenberg, some rights reserved This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. See COPYING. README Serialized is a set of classes that can parse serialized data into a normalized representation (semi structured data or S-expression). The base service is to parse serialized data into a so called Array Notation which represents both structure and the value(s) of PHP serialized data. See ARRAYNOT. This can be used to inspect and validate serialized data w/o the need to unserialize it first. For example if waking up sleeping objects is unwanted (parsing instead the factual process of unserializing). The parsed data can then be inspected and changed. Serialized variables (Sessions) are supported as well. Those are a list of serialized values with their variable name. Potential field of use is static data analysis, session display, inspection and manipulation of serialized data, converting etc. . Right now, the library can already do both: parsing into the Array Notation and dumping it into serialized data again. Output into other formats (Text, XML, ...) is possible as well. The following output formats to display serialized data and sessions are - as of now - available (example of a serialized array data sample dumped differently): * Text - Plain text, suitable for display in a shell environment. `-- array(4): +-- [user] => string(9): "user-name" +-- [network] => array(1): | `-- [localip] => string(7): "1.2.3.4" +-- [2] => string(4): "Zwei" `-- [language] => string(6): "german" * XML - Well-formed, machine readable and easy to convert. <?xml version="1.0" encoding="us-ascii"?> <serialized> <array members="4"> <item name="user" type="string"> <string len="9" value="user-name"/> </item> <item name="network" type="string"> <array members="1"> <item name="localip" type="string"> <string len="7" value="1.2.3.4"/> </item> </array> </item> <item name="2" type="int"> <string len="4" value="Zwei"/> </item> <item name="language" type="string"> <string len="6" value="german"/> </item> </array> </serialized> * Serialized - To store back. a:4:{s:4:"user";s:9:"user-name";s:7:"network";a:1:{s:7:"localip";\ s:7:"1.2.3.4";}i:2;s:4:"Zwei";s:8:"language";s:6:"german";} The library sources contain a test-suite to guarantee a certain level of confidence and strictness. If you run into any problems with serialized data on your end, please report back as this improves the library. This will help to break the parser so to reproduce and extend the test-suite with abstracted serialized data for future regression testing. Naturally private data will be anonmyzed before it is put into the test- suite and generally it will not be published w/o a written consent. Feedback of any kind is always warmheartly appreciated. Requirements: PHP 5.3.3 or higher PHPUNIT 3.5.5 or higher (for the test-suite) Use: To make use of the library, copy over the src directory into your library folder. Serialized ships with a PSR-0 compatbile autoloader. To make use of the library require the base file: require_once('library/Serialized.php'); After including it (the autoloader), auto-loading is enabled and the parser and the dumpers can be used: $array = Serialized\Parser::parse($serialized); Example: 00-basic-parsing Instead of using the autoloader, the library can be manually loaded as well: require_once('library/Serialized.php'); Serialized::loadLibrary(); For debugging purposes, there is a dump function which prints structure and data of a serialized string to standard output: $parser = new Serialized\Parser($serialized); $parser->dump(); Example: 01-debug-dump Resources: PHP Serialize Function (PHP Manual) http://php.net/manual/en/function.serialize.php PHP Unserialize Function (PHP Manual) http://php.net/manual/en/function.unserialize.php Object Serialization (PHP Manual) http://php.net/manual/en/language.oop5.serialization.php The Serializable interface (PHP Manual) http://php.net/manual/en/class.serializable.php Runtime Configuration "unserialize_callback_func" (PHP Manual) http://www.php.net/manual/en/var.configuration.php#unserialize-callback-func PHP Session Decode Function (PHP Manual) http://php.net/manual/en/function.session-decode.php PHP Serialize C Sourcecode http://svn.php.net/viewvc/php/php-src/trunk/ext/standard/var.c PHP Unserialize C Sourcecode http://svn.php.net/viewvc/php/php-src/trunk/ext/standard/var_unserializer.re PHP Serialization And Recursion Demystified (by Andrea Giammarchi; 2009-09-07) http://webreflection.blogspot.com/2009/09/php-serialization-and-recursion.html Recursive Reference Serialize Library (by Nghia Nguyen; 2009-06-01) http://www.phpclasses.org/package/5336-PHP-Serialize-objects-with-cyclic-references.html
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.