Как определить, закодирован ли PHP-файл или нет с помощью загрузчика Zend Guard

0

В прошлом году я развернул проект на клиентском сервере, закодировав все файлы с помощью расширения Zend Guard Loader PHP, и после развертывания мы сделали некоторые быстрые изменения/исправления в соответствии с электронными письмами клиентов и развернули файлы без кодирования на реальном сервере срочность, которую мы сделали так много раз после развертывания, теперь я нахожусь на сцене, что у меня нет списка файлов, которые были развернуты без кодирования на реальном сервере.

Теперь Клиент приходит в этом году для обновления решения путем дальнейшей интеграции новых модулей, которые требуют значительного влияния на текущее решение. Поэтому, прежде чем двигаться вперед с новой интеграцией модулей, я хотел бы создать один отчет о том, какие файлы в настоящее время развернуты на реальном сервере без кодирования.

Теперь, придя к технической дискуссии, я искал в Google и пришел к одному решению, которое мы можем проверить, закодирован ли файл или нет, с помощью Zend Guard Loader - PHP API. (http://files.zend.com/help/Zend-Server-5/zend_guard_loader_-_php_api.htm)

API предоставляет одну функцию boolean zend_loader_file_encoded (void), но на самом деле эта функция не принимает никаких аргументов, поскольку она всегда проверяет текущий файл, является ли текущий файл зашифрованным или не используется с помощью Zend guard.

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

Ждем дальнейший путь.

  • 0
    Как выглядит такой закодированный Zend Guard файл?
  • 0
    содержимое выглядит как <? php @Zend; 3074; / *
Теги:
encoding
zend-framework
zend-guard

1 ответ

1
Лучший ответ

Вам нужно рекурсивно проверить файлы php, которые не начинаются с <?php @Zend; :

$directory = new \RecursiveDirectoryIterator($path);
$iterator = new \RecursiveIteratorIterator($directory);
$files = array();
foreach ($iterator as $info) {
  if (substr($info->getPathname(), -4) === '.php') {
    $f = fopen($info->getPathname(), 'r');
    $bytes = fgets($f, 12);
    fclose($f);
    if($bytes !== '<?php @Zend;') {
      $files[] = $info->getPathname();
    }
  }
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню