|
|
|
| Задача достаточно тривиальная)
В директории находятся файл-скрипт и описание этого скрипта (*.tt).
Надо сделать что бы выводилось название файла c ссылкой и ниже описание.
Сделал вот два варианта.
А какой все-таки лучше использовать?
Вариант 1.
<?
$dirName = "./prog+opis";
$dp = opendir($dirName);
chdir($dirName);
echo "<table border=1>";
while (@$cFile !== false){
$cFile = readDir($dp);
$theFiles[] = $cFile;
}
$mass = preg_grep("/php$|tt$/", $theFiles);
foreach ($mass as $cFile){
$ext = strtolower(substr($cFile, strrpos($cFile, '.') + 1));
if ($ext=="php")
echo "<tr><td><a href = $dirName/$cFile>$cFile</a><br>";
else {include_once(".$dirName/$cFile");
echo "</td></tr>";}
}
echo "</table>";?>
|
Вариант 2.
<?$d = dir("prog+opis/");
$df="prog+opis/";
echo "Дескриптор: ".$d->handle."<br>\n";
echo "Путь: ".$d->path."<br>\n";
echo "<table border=1>";
while (false !== ($entry = $d->read())) {
$ext = strtolower(substr($entry, strrpos($entry, '.') + 1));
if ($entry!="."&&$entry!=".."&&($ext=="php"|$ext=="tt")){
echo "<tr><td>";
if ($ext=="php")
echo "<a href=".$df."/".$entry.">".$entry."</a><br>\n";
else {include_once("prog+opis/$entry");}
echo "</td></tr>";
};
;
}
$d->close();
echo "</table>";
?>
|
----
Regards, Max Vasin. | |
|
|
|
|
|
|
|
для: Max Vasin
(30.03.2008 в 17:40)
| | Какой вариант нравится, такой и используйте. | |
|
|
|
|
|
|
|
для: Max Vasin
(30.03.2008 в 17:40)
| | Идентичны, только по скорости немного отличаются | |
|
|
|
|
|
|
|
для: mihdan
(30.03.2008 в 22:13)
| | хм... сразу не сообразил на время прогнать
0.0008 и 0.0013.
первый "выгоднее" получается
----
Regards, Max Vasin. | |
|
|
|
|
автор: '_' (30.03.2008 в 22:48) |
|
|
для: Max Vasin
(30.03.2008 в 22:30)
| | странно , вроде как по логике второй вариант должен быть быстрее
там один цикл вместо двух , и впамять не записывается массив.
замечал что при тестировании с IE отображаются неправильные результаты,
как-будто из кэша что-то само дописывается и проц замедляется позже того как будто-бы сгенерировалась страница.
Тогда как в при тестировании с Оперы , денвер выдаёт совсем другие результаты | |
|
|
|
|
|
|
|
для: Max Vasin
(30.03.2008 в 22:30)
| | Ну и муть...
Если ты хочешь добиться более быстрой скорости, то используй стандартные функции:
<?php
$dirname = 'prog+opis';
echo '<table border="1">';
foreach( glob( $dirname . '/*.{php,tt}', GLOB_NOSORT | GLOB_BRACE) as $v )
{
echo '<tr><td>';
if( strrchr($v, '.') == '.php')
{
echo "<a href='" . htmlspecialchars($v, 3) . "'>" . htmlspecialchars(basename($v)) . "</a><br />\r\n";
}
else
{
include_once($v);
}
echo '</td></tr>';
}
echo '</table>';
?>
|
| |
|
|
|