В прошлом году я развернул проект на клиентском сервере, кодировав все файлы с использованием расширения 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 предоставляет одну функцию логическое zend_loader_file_encoded (void) но на самом деле эта функция не принимает никаких аргументов, так как она всегда проверяет текущий файл, зашифрован ли текущий файл или нет с помощью Zend Guard.
В основном я хотел бы просмотреть каждую папку и дополнительные файлы внутри нее на сервере, чтобы проверить, закодирована она или нет.
С нетерпением ждем вашего дальнейшего пути.
Вам нужно рекурсивно проверять 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();
}
}
}
Других решений пока нет …