source: spip-zone/_plugins_/yaml/inc/yaml.php @ 39778

Last change on this file since 39778 was 39778, checked in by joseph@…, 10 years ago

Oups. Correction d'une erreur dans un appel

File size: 1.6 KB
Line 
1<?php
2
3# wrapper de la class sfYAML pour SPIP
4#
5# fournit deux fonctions pour YAML,
6# analogues a json_encode() et json_decode
7#
8# Regle de dev: ne pas se rendre dependant de la lib sous-jacente
9
10// Si on est en PHP4
11 if (version_compare(PHP_VERSION, '5.0.0', '<'))
12        define('_LIB_YAML','spyc-php4'); 
13 else {
14        // temporaire le temps de tester spyc
15        define('_LIB_YAML','sfyaml'); 
16        #define('_LIB_YAML','spyc');
17}
18/*
19 * Encode n'importe quelle structure en yaml
20 * @param $struct
21 * @return string
22 */
23function yaml_encode($struct, $opt = array()) {
24        // Si PHP4
25        if (_LIB_YAML == 'spyc-php4') {
26                require_once _DIR_PLUGIN_YAML.'spyc/spyc-php4.php';
27                return Spyc::YAMLDump($struct);
28        }
29        // test temporaire
30        if (_LIB_YAML == 'spyc') {
31                require_once _DIR_PLUGIN_YAML.'spyc/spyc.php';
32                return Spyc::YAMLDump($struct);
33        }
34
35        require_once _DIR_PLUGIN_YAML.'inc/yaml_sfyaml.php';
36        return yaml_sfyaml_encode($struct, $opt);
37}
38
39/*
40 * Decode un texte yaml, renvoie la structure
41 * @param string $input
42 */
43function yaml_decode($input) {
44        // Si PHP4
45        if (_LIB_YAML == 'spyc-php4') {
46                require_once _DIR_PLUGIN_YAML.'spyc/spyc-php4.php';
47                return Spyc::YAMLLoad($input);
48        }
49        // test temporaire
50        if (_LIB_YAML == 'spyc') {
51                require_once _DIR_PLUGIN_YAML.'spyc/spyc.php';
52                return Spyc::YAMLLoad($input);
53        }
54
55        require_once _DIR_PLUGIN_YAML.'inc/yaml_sfyaml.php';
56        return yaml_sfyaml_decode($input);
57}
58
59/*
60 * Decode un fichier en utilisant yaml_decode
61 * @param string $fichier
62 */
63function yaml_decode_file($fichier){
64        $yaml = '';
65        $retour = false;
66       
67        lire_fichier($fichier, $yaml);
68        // Si on recupere bien quelque chose
69        if ($yaml){
70                $retour = yaml_decode($yaml);
71        }
72       
73        return $retour;
74}
75
76?>
Note: See TracBrowser for help on using the repository browser.