Skip to content
Extraits de code Groupes Projets
Sélectionner une révision Git
  • 29669265c88b6ba62a90ac4bd7ed6668669efbeb
  • master par défaut protégée
  • issue_4661
  • 4.4
  • issue_5999_arg__image_extensions_logos_pour_44
  • issue_5987_doc_sql_getfetsel
  • issue_5993_depreciation_math
  • issue_5994_remove_math
  • dev/issue_5560_dispositions_prive
  • issue_3408_coherence_publierdans
  • 4.3
  • coquille_phpdoc
  • refactor_idiomes
  • issue5933_qualif_liens
  • 4.1
  • 4.2
  • dev/issue_5979_accessibilite_menu_admin
  • issue_5979_menu
  • issue_5940
  • issue_5880
  • issue_4943
  • v4.1.18
  • v4.2.16
  • v4.3.2
  • v4.3.1
  • v4.2.15
  • v4.3.0
  • v4.1.17
  • v4.2.14
  • v4.3.0-beta
  • v4.1.16
  • v4.2.13
  • v4.3.0-alpha2
  • v4.3.0-alpha
  • v4.2.12
  • v4.2.11
  • v4.2.10
  • v4.2.9
  • v4.1.15
  • v4.1.14
  • v4.2.8
41 résultats

json.php

Blame
  • Bifurcation depuis spip / spip
    9457 validations de retard le dépôt en amont.
    Avatar de Cerdic
    cerdic authored
    af4bf26d
    Historique
    json.php 2,17 Kio
    <?php
    
    /***************************************************************************\
     *  SPIP, Systeme de publication pour l'internet                           *
     *                                                                         *
     *  Copyright (c) 2001-2010                                                *
     *  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;
    
    // Les fonctions de toggg pour faire du JSON
    
    /**
     * Transform a variable into its javascript equivalent (recursive)
     * @access private
     * @param mixed the variable
     * @return string js script | boolean false if error
     */
    
    // http://doc.spip.org/@var2js
    function var2js($var) {
    	$asso = false;
    	switch (true) {
    		case is_null($var) :
    			return 'null';
    		case is_string($var) :
    			return '"' . str_replace('&', '\x26', addcslashes($var, "\"\\\n\r")) . '"';
    		case is_bool($var) :
    			return $var ? 'true' : 'false';
    		case is_scalar($var) :
    			return $var;
    		case is_object( $var) :
    			$var = get_object_vars($var);
    			$asso = true;
    		case is_array($var) :
    			$keys = array_keys($var);
    			$ikey = count($keys);
    			while (!$asso && $ikey--) {
    				$asso = $ikey !== $keys[$ikey];
    			}
    			$sep = '';
    			if ($asso) {
    				$ret = '{';
    				foreach ($var as $key => $elt) {
    					$ret .= $sep . '"' . $key . '":' . var2js($elt);
    					$sep = ',';
    				}
    				return $ret ."}\n";
    			} else {
    				$ret = '[';
    				foreach ($var as $elt) {
    					$ret .= $sep . var2js($elt);
    					$sep = ',';
    				}
    				return $ret ."]\n";
    			}
    	}
    	return false;
    }
    
    // http://doc.spip.org/@json_export
    function json_export($var) {
    	$var = var2js($var);
    
    	// flag indiquant qu'on est en iframe et qu'il faut proteger nos
    	// donnees dans un <textarea> ; attention $_FILES a ete vide par array_pop
    	if (defined('FILE_UPLOAD'))
    		return "<textarea>".htmlspecialchars($var)."</textarea>";
    	else
    		return $var;
    }
    
    
    
    ?>