1 votes

Fonctions PHP non disponibles - json_decode

D'après ma php_info(), ma version de PHP est la version 5.2.9.

Cependant, pour une raison quelconque, lorsque j'essaie d'utiliser json_decode, je reçois une erreur indiquant que la fonction n'est pas trouvée (alors qu'elle devrait l'être pour PHP 5.2 et plus).

PHP.net me suggère de vérifier la commande configure :

'. /configure' '--prefix=/usr/local/php5' '--with-config-file-scan-dir=/usr/local/php5/etc' '--with-apxs2=/usr/sbin/apxs' '--disable-all' '--enable-libxml' '--with- libxml-dir=/usr/local' '--enable-reflection' '--disable-cli' '--disable-cgi' '--enable-zend-multibyte' '--with-regex=php' '--enable-filter' '--with-pcre-regex=yes'

Je ne comprends pas la moitié de tout cela, mais le --disable-all pourrait être le problème ? Y a-t-il un moyen d'utiliser json_decode sans recompiler PHP ?

Je pourrais trouver une fonction json, mais je préfère utiliser les fonctions PHP intégrées qui devraient être disponibles, et j'ai peur qu'il y ait d'autres fonctionnalités que je voudrais utiliser plus tard.

Les bibliothèques pour JSON existent-elles, qu'elles aient été compilées ou non, et puis-je les inclure directement lorsque je veux les utiliser ?

2voto

mario Points 76989

http://upgradephp.berlios.de/ contient une réimplémentation de json_decode() entre autres choses.

1voto

Eric Coleman Points 690

L'option --disable-all est en effet à l'origine du problème.

Si vous ne pouvez pas recompiler, ou installer un paquetage "json" à partir d'un packager linux, je vous suggère fortement d'utiliser Zend_Json. Il utilisera automatiquement le code json_[en|de] s'il est disponible.

http://framework.zend.com/apidoc/1.10/Zend_Json/Zend_Json.html

$json = Zend_Json::encode($data);
$data = Zend_Json::decode($data);

1voto

ZZ Coder Points 36990

Json est une extension (écrite en C) qui est incluse dans la configuration de construction par défaut. Comme vous avez utilisé l'option disable-all, elle n'est pas incluse dans votre compilation.

Vous pouvez ajouter l'extension sans reconstruire PHP. Il suffit d'obtenir ou de compiler l'extension (json.dll ou json.so) et d'ajouter cette ligne à votre fichier php.ini,

extension=json.so

0voto

Matchu Points 37755

Non. Les fonctions JSON sont probablement écrites en C, et sont soit compilées dans votre binaire PHP, soit inaccessibles.

Soit vous devez recompiler, soit vous devez utiliser l'une des 6 alternatives sur json.org .

0voto

Scott Evernden Points 17858
"However, for some reason when i try and use php_decode"

essayez-vous php_decode() ou json_decode() ? il n'existe pas de php_decode()

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X