Главная » 2011 » Май » 31 » Вывод любой информации о файле
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 и изучения функций работы с файлами.
Категория: Советы | Просмотров: 431 | Добавил: ALL-DLE | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: