uawdijnntqw1x1x1
IP : 216.73.216.249
Hostname : webm001.cluster110.gra.hosting.ovh.net
Kernel : Linux webm001.cluster110.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
OS : Linux
PATH:
/
home
/
etiennec
/
www
/
ecrire
/
xml
/
..
/
inc
/
simplexml_to_array.php
/
/
<?php /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * * Copyright (c) 2001-2014 * * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * \***************************************************************************/ if (!defined('_ECRIRE_INC_VERSION')) return; /** * Transforme un texte XML en tableau PHP * @param string|object $u * @param bool $utiliser_namespace * @return array */ function inc_simplexml_to_array_dist($u, $utiliser_namespace=false){ // decoder la chaine en SimpleXML si pas deja fait if (is_string($u)) $u = simplexml_load_string($u); return array('root'=>@xmlObjToArr($u, $utiliser_namespace)); } /** * Transforme un objet SimpleXML en tableau PHP * http://www.php.net/manual/pt_BR/book.simplexml.php#108688 * xaviered at gmail dot com 17-May-2012 07:00 * * @param object $obj * @param bool $utiliser_namespace * @return array **/ function xmlObjToArr($obj, $utiliser_namespace=false) { $tableau = array(); // Cette fonction getDocNamespaces() est longue sur de gros xml. On permet donc // de l'activer ou pas suivant le contenu supposé du XML if (is_object($obj)) { if (is_array($utiliser_namespace)){ $namespace = $utiliser_namespace; } else { if ($utiliser_namespace) $namespace = $obj->getDocNamespaces(true); $namespace[NULL] = NULL; } $name = strtolower((string)$obj->getName()); $text = trim((string)$obj); if (strlen($text) <= 0) { $text = NULL; } $children = array(); $attributes = array(); // get info for all namespaces foreach( $namespace as $ns=>$nsUrl ) { // attributes $objAttributes = $obj->attributes($ns, true); foreach( $objAttributes as $attributeName => $attributeValue ) { $attribName = strtolower(trim((string)$attributeName)); $attribVal = trim((string)$attributeValue); if (!empty($ns)) { $attribName = $ns . ':' . $attribName; } $attributes[$attribName] = $attribVal; } // children $objChildren = $obj->children($ns, true); foreach( $objChildren as $childName=>$child ) { $childName = strtolower((string)$childName); if( !empty($ns) ) { $childName = $ns.':'.$childName; } $children[$childName][] = xmlObjToArr($child, $namespace); } } $tableau = array( 'name'=>$name, ); if ($text) $tableau['text'] = $text; if ($attributes) $tableau['attributes'] = $attributes; if ($children) $tableau['children'] = $children; } return $tableau; } ?>
/home/etiennec/www/ecrire/xml/../inc/simplexml_to_array.php