Merci pour l’aide, ça me permet d’avancer ...
Donc, effectivement la fonction json_decode est incorporée seulement depuis php5.2 : free.fr étant en 5.1.3, j’ai ajouté à mon mes_options le code que j’ai récupéré à l’adresse indiquée :
if (!function_exists('json_decode')) {
function json_decode($json) {
$comment = false;
$out = '$x=';
for ($i=0; $i<strlen($json); $i++) {
if (!$comment) {
if (($json[$i] == '{') || ($json[$i] == '[')) {
$out .= 'array(';
}
elseif (($json[$i] == '}') || ($json[$i] == ']')) {
$out .= ')';
}
elseif ($json[$i] == ':') {
$out .= '=>';
}
elseif ($json[$i] == ',') {
$out .= ',';
}
elseif ($json[$i] == '"') {
$out .= '"';
}
/*elseif (!preg_match('/\s/', $json[$i])) {
return null;
}*/
}
else $out .= $json[$i] == '$' ? '\$' : $json[$i];
if ($json[$i] == '"' && $json[($i-1)] != '\\') $comment = !$comment;
}
eval($out. ';');
return $x;
}
}
La fonction json_decode est bien exécutée mais son résultat est "vide ou mal formé" (c’est ce qui est écrit dans l’alerte qui apparait) et la page du squelette donne :
Parse error : syntax error, unexpected ’ ;’ in /mnt/102/sdb/b/1/fulvio.filippini/config/mes_options.php(66) : eval()’d code on line 1
La ligne 66 de mes_options.php contient effectivement eval($out. ’ ;’) ; donc $out est bien vide ...
Je suis nul en php mais dans cette fonction json_decode il me semble que c’est la variable $json qui doit conténir les données à décoder ... ors, dans spip3, data.php (qui fait appel-ligne517- à json_decode) utilise la variable $v : es correct ?
En revenant à mon essai infructueux de liste des fichiers jpg, qui fait appel à la fonction glob (dans PHP depuis PHP4), avez-vous une idée ?