04:04 Вывод любой информации о файле | |
Ситуация: В своей конторе мы разрабатываем софт, по заказам клиента и, как это бывает, сопровождением сайта занимается не php-программист (который в это время выполняет заказ), а обычный программист (который не мучается с закрытием дыр в php-коде). Задача: Выводить дату создания локального файла (т.е. который лежит на этом же сервере), либо читать (при возможности) его содержимое и то же выводить. Решение: Как уже упоминалось, я опирался на вышеуказанные статьи + посетил ресурс ru.php.net. Отсюда сделал вывод, что это в принципе возможно. Вот код 2-х php-файлов: 1. Читает ИЗ файла параметры и выводит их (описывалось 2. Читает дату создания файла (сделал по аналогии с указанной выше статьей). 1 /* ===================================================== Вывод версии баз с NOD32 (от Plexx) ===================================================== Файл: nod.php ===================================================== */ if(!defined('DATALIFEENGINE')) { die("Hacking attempt!"); } if (file_exists("D:/Appserv/www/nod32/update.ver")) { // Обязательно с двойными обратными слэшами. $f = file("D:/Appserv/www/nod32/update.ver"); // Обязательно с двойными обратными слэшами. $search = "ENGINE2"; // определяем что нам надо найти $i = 0; while ($i < sizeof($f)&& strpos($f[$i], $search) == false) { $i++; } // перебираем строки пока не наткнемся на совпаденеие с искомым текстом $ver = $i+1; $data = $i+6; $nod32 .= str_replace("version=", "", $f[$ver]); // выводим следующий элемент массива после найденого текста, убрав из нее ненужный текст } else { // если файла нет $nod32 .= "Обновления не готовы."; // выводим фразу } ?> 2 /* ===================================================== Вывод даты создания файла (от Azerich) ===================================================== Файл: date_info.php ===================================================== */ if(!defined('DATALIFEENGINE')) { die("Hacking attempt!"); } $filename = 'C:Apachehtdocsdirexe.exe'; if (file_exists($filename)) { $m=stat($filename); $date_info .= date("d.m.Y", $m[9]). " .Вы можете скачать этот файл"; } else { $date_info .= "Поддержка приостановлена.."; } ?> Манипулируя массивом $m[0.....] из файла можно вытянуть, с помощью функции stat(), все что Вам необходимо. Настройка данных переменных ($nod32 & $date_info) под тэги не составит труда, но для тех, кто даже поиском не умеет пользоваться пишу: 1. Созданный php-файл кладем в engine//modules 2. в index.php после require_once ROOT_DIR . '/engine/init.php'; добавляем require_once ROOT_DIR.'/engine/modules/date_info.php'; ниже после $tpl->set ( '{calendar}', $tpl->result['calendar'] ); добавляем $tpl->set('{date_info}',$date_info); В принципе, я не рассказал чего-то нового для тех, кто что-то умеет в php, но исследуя возможности php сам я потерял кучу времени (к счастью оно оплачено). А вдруг кому-нибудь пригодится - я буду очень рад. P.S.: Функция stat() работает ТОЛЬКО с локальными файлами (т.е. теми, которые находятся на этом же сервере). Определение даты создания удаленного файла в задачи не входило, но решается просто после посещения ru.php.net и изучения функций работы с файлами. | |
|
Всего комментариев: 0 | |