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