|
|
|
| Подскажите,
1. как сделать, чтобы результат выводился в алфавитном порядке?
2. у меня файлы в директории двух видов 1a1.htm и 2a1.htm как вывести только файлы начинающееся на 1.
<?php
scan_dir("../0");
function scan_dir($dirname)
{
$dir = opendir($dirname);
while (($file = readdir($dir)) !== false)
{
if($file != "." && $file != "..")
{
if(is_file($dirname."/".$file))
{
$text = file_get_contents($dirname."/".$file);;
$pattern = "|<h1>(.*?)<\/h1>|";
preg_match($pattern, $text, $out);
echo "<pre><a href='$file'>";
echo @$out[1];
echo "</a></pre>";
}
if(is_dir($dirname."/".$file))
{
scan_dir($dirname."/".$file);
}
}
}
closedir($dir);
}
?>
|
| |
|
|
|
|
|
|
|
для: dedev
(28.12.2006 в 17:23)
| | 1. Скорее всего только загонять список в массив там сортировать и потом только выводить
2. Добавить условия при выводе.
Сейчас что-то нарисую :) | |
|
|
|
|
|
|
|
для: dedev
(28.12.2006 в 17:23)
| | Вот, что-то вроде этого должно работать :) Только минус уберете, у меня небыло хеадеров в каждом файле ;-)
<?php
$files_arr = array();
$descr_files_arr = array();
# Если у файла первые символы соответствуют $needet_files он их выводит в браузер.
#Неограничивается одним символом.
#Чтобы выводить все закомментируйте переменную
#$needet_files = "1";
scan_dir("../0");
function scan_dir($dirname)
{
$dir = opendir($dirname);
while (($file = readdir($dir)) !== false)
{
if($file != "." && $file != "..")
{
if(is_file($dirname."/".$file))
{
$text = file_get_contents($dirname."/".$file);;
$pattern = "|<h1>(.*?)<\/h1>|";
preg_match($pattern, $text, $out);
$GLOBALS[files_arr][] = $file;
$GLOBALS[descr_files_arr][] = @$out[1];
#echo "<pre><a href='$file'>";
#echo @$out[1];
#echo "</a></pre>\n";
}
if(is_dir($dirname."/".$file))
{
scan_dir($dirname."/".$file);
}
}
}
closedir($dir);
}
natsort($files_arr);
foreach ($files_arr as $key=>$value)
{
if(empty($needet_files))
{
echo "<pre><a href='".$value."'>_".$descr_files_arr[$key]."</a></pre>\n";
}
elseif(substr($value, 0, strlen($needet_files)) == $needet_files)
{
echo "<pre><a href='".$value."'>-".$descr_files_arr[$key]."</a></pre>\n";
}
}
?>
|
| |
|
|
|
|
|
|
|
для: Ученик
(28.12.2006 в 18:15)
| | Спасибо, работает отлично.
подскажите как сделать сортировку по алфавиту, по этому значению $pattern | |
|
|
|
|
|
|
|
для: dedev
(28.12.2006 в 19:07)
| | Перепишите вывод значений массива таким образом
natsort($descr_files_arr);
foreach ($descr_files_arr as $key=>$value)
{
if(empty($needet_files))
{
echo "<pre><a href='".$files_arr[$key]."'>".$value."</a></pre>\n";
}
elseif(substr($value, 0, strlen($needet_files)) == $needet_files)
{
echo "<pre><a href='".$files_arr[$key]."'>".$value."</a></pre>\n";
}
}
|
| |
|
|
|
|
|
|
|
для: Ученик
(29.12.2006 в 12:50)
| | Подскажите, почему не сортирует в алфавитном порядке по значению $pattern | |
|
|
|