PHP: Call to undefined function gzdecode()
J'obtiens un message d'erreur étrange avec le morceau suivant du code PHP (je ne suis pas un PHP expert):
if ( $file_loc != NULL ) {
if ( file_exists($file_loc) ) {
printf(" file exists");
$handle = fopen($file_loc, "rb");
$contents = fread($handle, filesize($file_loc));
fclose($handle);
$result = gzdecode($contents);
}
}
Je suis fondamentalement d'essayer de charger le contenu texte à partir d'un fichier au format gzip. J'obtiens l'erreur suivante:
Fatal error: Call to undefined function gzdecode() in ...\sites\MyScripts\fw2.php on line 80
Encore, quand je prends un coup d'oeil à la documentation, il ne semble pas que j'aurais besoin d'inclure une bibliothèque, ou suis-je mal? Comment puis-je résoudre ce problème?
Mise à JOUR
La suite d'un autre question pour vérifier si cette bibliothèque est installé sur mon PC, la réponse est oui, il est.
À partir de PHP info:
De sorte que cela devient de plus en plus confuse...
MISE À JOUR II
J'ai essayé:
<?php
echo phpversion().", ";
if (function_exists("gzdecode")) {
echo "gzdecode OK, ";
} else {
echo "gzdecode no OK, ";
}
if (extension_loaded('zlib')) {
echo "zlib extension loaded ";
} else {
echo "zlib extension not loaded ";
}
?>
et j'obtiens:
5.2.17, gzdecode no OK, zlib extension loaded
Je suis sur Windows 7 à l'aide d'un Acquia Dev Desktop.
Hm, c' est intéressant. Comment avez-vous installer PHP?
En fait, je suis à l'apprentissage de Drupal à l'aide d'un package disponible ici: acquia.com/products-services/dev-desktop. Ce package installé PHP avec Apache et MySQL. Cette installation est stable, mais peut-être qu'il n'a pas d'installer ZLib.
Avant de tenter cela, je veux vérifier si c'est un simple problème d'installation. J'ai créé une autre question: stackoverflow.com/questions/9802498/...
OriginalL'auteur Jérôme Verstrynge | 2012-03-21
Vous devez vous connecter pour publier un commentaire.
Il n'est pas toujours installé. De la documentation:
edit: Puisque c'est la accepté de répondre encore, j'ai édité pour ajouter la fonction suggéré en remplacement.
Ce n'
function_exists
retour pourgzdecode
?La bibliothèque est chargé, mais la fonction n'existe pas. Voir mon deuxième mise à jour sur ma question.
bugs.php.net/bug.php?id=22123 implique que
gzdecode
n'existe que dans PHP 6.Un enfant de 10 ans rapport de bug, avec un vieux de 6 ans commentaire à propos de PHP6 est pas une bonne référence.
OriginalL'auteur Waynn Lue
gzdecode n'est disponible que si PHP est respecté avec zlib. Il sera peut-être inclus dans PHP 6, selon certaines sources. Avis dans le manuel comment presque toutes les fonctions ont donné une version de PHP, lorsqu'il est devenu /est disponible. Curieusement, ils ne pense pas que c'nécessaire à l'affichage d'un message d'avertissement.
Essayer ce code (qui fonctionne pour moi) pour gzdecode sans les sommes de contrôle:
et vous pouvez le prouver comment?
Il n'était pas dans mon "PHP5" ni celle de l'un de ces affiches!
Qu'est-ce exactement dois-je le prouver? Je peux prouver le manuel n'est pas exact par le fait qu'il omet des informations de version sur un zlib fonction (comme vous pouvez le voir), je peux prouver l'ensemble des fonctionnalités de PHP6 n'est pas décidé, parce que je suive les listes de diffusion, et puis vous assurer, on ne parle pas de béton fonctionnalités encore, et je peux le prouver que la fonction est en PHP5 par liaison à l'engagement qu'il a été introduit, près de 3 ans - Juste parce que c'est pas activée par défaut, ne signifie pas qu'il n'y est pas.
alors, comment avez-vous l'activer?
OriginalL'auteur user1122069
Fonction gzdecode est disponible depuis php 5.4
Ma solution préférée est
Décompression gzip de la réponse http
OriginalL'auteur caiofior