PHP Warning: gzinflate(): erreur de données dans
J'emballe mon code à l'aide de gzdeflate(), après je ne addslashes() et écrire dans un fichier comme $var ='MY_RESULT';
Après, j'essaie de l'exécuter à l'aide de la fonction eval(stripslashes(gzinflate($var))) et obtenez l'erreur Avertissement: gzinflate(): données d'erreur dans cette ligne. Si j'ai mis $var = addslashes(gzdeflate("my_original_code")) tout travail agréable, mais j'ai besoin de mettre dégonflé résultat de cette variable. Alors, où est mon erreur? Voici mon code:
<?php
$source = file_get_contents("source.txt");
$gz = addslashes(gzdeflate($source,9));
$a = "<?php $var='";
$b = "'; eval(gzinflate(stripslashes($var)));";
$result = $a.$gz.$b;
$fp = fopen('result.php', 'wb');
fwrite($fp, $result);
fclose($fp);
- Outre le manque de point-virgule à la fin de la ligne 5 (
$b = "...;";
), une version simplifiée de ce code avec pas écrire ce fichier semble bien fonctionner: 3v4l.org/Uigv4 - Oui, mais j'ai besoin de code de travail avec l'écriture dans le fichier.
- Mon point était que je ne pouvais pas reproduire votre problème avec l'exemple simplifié, et que cela pourrait aider à réduire le problème. Je suis en train de vous aider à découvrir le problème, de ne pas écrire votre code pour vous.
- En fait, en mettant le fichier de rédaction de retour dans encore les résultats dans le code du travail pour moi. Voici le code que j'ai couru: gist.github.com/IMSoP/368a6819b07458912b8a
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin pour inverser l'ordre des étapes de codage lorsque vous êtes décodage.
Étapes de codage:
Votre décodage suit:
Clairement que ne fonctionnera pas. Vous avez besoin de:
Donc, en bref, au lieu de
stripslashes(gzinflate($var))
, vous avez besoingzinflate(stripslashes($var))
.[Pourquoi sur la terre que vous faites tout cela, et en cours d'exécution
eval()
sur le résultat, j'ai la trouille de penser, mais il y a un bug.]