Данная библиотека предназначена для использования с файлами в XML формате, которые могут являться своеобразной базой данных для сайта.
class SimpleXMLExtended extends SimpleXMLElement{ public function addCData($cdata_text){ $node = dom_import_simplexml($this); $no = $node->ownerDocument; $node->appendChild($no->createCDATASection($cdata_text)); } public function setData($tag, $cdata){ $note = $this->addChild($tag); $note->addCData($cdata); } } function saveXML($file, $a){ $xml = new SimpleXMLExtended('<?xml version="1.0" encoding="UTF-8"?><item></item>'); $xml->addChild('pubDate', date('r')); foreach($a as $k=>$v){ if(is_numeric($v)) $xml->addChild($k, $v); else $xml->setData($k, str_replace("]", "}}", str_replace("[", "{{", $v))); } return $xml->asXML($file) === TRUE; } function loadXML($file) { $data = array(); $xml = simplexml_load_string(file_get_contents($file), 'SimpleXMLExtended', LIBXML_NOCDATA); foreach($xml->children() as $k=>$v){ $data[$k] = is_numeric($v) ? $v : str_replace("{{", "[", str_replace("}}", "]", $v)); } return $data; }
Собственно лайба состоит из класса и двух функций, которые следует вызывать: saveXML(«имя_файла», массив_данных) — для сохранения в файл, и loadXML(«имф_файла») — для чтения из файла(отдаёт сохранённый массив).
Если файла не существует, то он создаётся.
Файлы в базе данных — UTF-8 — это важно!