|
|
|
| Как мне написать скрипт который бы делал следующее:
Считывал из папки "test" все фаилы типа *.txt
Определял последние изменённые 10 фаилов из множества(т.е. те 10 в которые последними записались строки и фаилы соответственно изменились).
Из каждого из этих фаилов считывал последнюю записанную строку
и выводил эти строки к 10-ти фаилам в цикле.
Возможно ли вообще такое сделать?
Если да то подскажите пожалуйста как. | |
|
|
|
|
|
|
|
для: dron
(15.10.2005 в 22:58)
| | Вот так:
<?
$dirname = "test/"; // Имя папки (на конце косой слэш обязателен !)
$file_type = "txt"; // Расширение нужных файлов
$max_to_output = "10"; // Максимальное кол-во выводимых файлов
$count_files = opendir ($dirname);
$counter = 0;
while ($file = readdir ($count_files))
{
$filetype = explode(".", $file);
$filetype = array_reverse($filetype);
$filetype = $filetype[0];
if ($file != "." && $file != ".." && is_file($dirname.$file) && ($filetype == $file_type)) {
$file_names[$counter] = filemtime($dirname.$file)."|".$file;
$counter++;
}
}
closedir($count_files);
if (!Empty($file_names)) {
rsort($file_names);
for ($i=0; $i < $counter; $i++) {
}
if ($counter < $max_to_output) {$flcount = $counter;} else {$flcount = $max_to_output;}
for ($i=0; $i < $flcount; $i++) {
$filename = explode("|", $file_names[$i]);
$file_cont = file($dirname.$filename[1]);
$file_cont = array_reverse($file_cont);
echo $file_cont[0]."<br>"; // Вывод последней строки файла
}
} else {echo "Нет подходящих для обработки файлов !";}
?>
|
| |
|
|
|
|
|
|
|
для: DDK
(16.10.2005 в 00:06)
| | Спасибо всё работает. | |
|
|
|
|
|
|
|
для: dron
(16.10.2005 в 00:19)
| | Да и если не трудно подскажите как сделать так что бы из последней строки выводилось допустим первые 100 символов. | |
|
|
|
|
|
|
|
для: dron
(17.10.2005 в 01:15)
| | Измените строку
<?php
echo $file_cont[0]."<br>"; // Вывод последней строки файла
?>
|
на
<?php
echo substr($file_cont[0],0,100)."<br>"; // Вывод последней строки файла
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(17.10.2005 в 01:23)
| | А ещё подскажите как сделать так что бы скрипт выводил не только последнюю строку но и предпоследнюю | |
|
|
|
|
|
|
|
для: dron
(27.10.2005 в 01:16)
| | Добавьте перед строкой
<?php
echo $file_cont[0]."<br>"; // Вывод последней строки файла
?>
|
ещё одну строку
<?php
echo $file_cont[1]."<br>"; // Предпоследняя строка
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(27.10.2005 в 13:35)
| | Спасибо! А можно сделать так что бы этот скрипт не трогал первые 2 строки фаила(в них допустим хранится дополнительная инфа) а начинал чтение с 3 -ей | |
|
|
|
|
|
|
|
для: dron
(27.10.2005 в 15:32)
| | он их и не трогает... что-то я не понимаю. Если говорить образно, то мы вообще начинаем читать файл с конца... | |
|
|
|
|
|
|
|
для: dron
(27.10.2005 в 15:32)
| | Замените строку
<?php
for ($i=0; $i < $flcount; $i++) {
?>
|
на
<?php
for ($i=2; $i < $flcount; $i++) {
?>
|
| |
|
|
|