gz — PHP Предупреждение: gzinflate (): ошибка данных в

Я упаковываю свой код, используя gzdeflate (), после того, как я добавляю addlashes () и записываю его в файл как $ var = ‘MY_RESULT’;
После этого я пытаюсь выполнить его, используя eval (stripslashes (gzinflate ($ var))) и получаю сообщение об ошибке. Предупреждение: gzinflate (): ошибка данных в этой строке. Если я устанавливаю $ var = addlashes (gzdeflate («my_original_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);

0

Решение

Вам нужно изменить порядок шагов кодирования при декодировании.

Шаги кодирования:

  1. взять код, применить сжатие gzip, дать сжатый код
  2. взять сжатый код, добавить косую черту, давая экранированный сжатый код

Ваши текущие шаги декодирования:

  1. возьмите экранированный сжатый код и попытайтесь его распаковать
  2. возьмите результат (1) и попытайтесь удалить косую черту

Очевидно, что это не сработает. Вам нужно:

  1. взять сбежавший сжатый код, удалить косую черту, выдав сжатый код
  2. возьмите сжатый код, распакуйте его, предоставив исходный код

Короче вместо stripslashes(gzinflate($var)), тебе нужно gzinflate(stripslashes($var)),

[С какой стати ты все это делаешь и бежишь eval() на результат, я боюсь думать, но есть ваша ошибка.]
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]