Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Какой вариант целесообразнее использовать?
 
 автор: Max Vasin   (30.03.2008 в 17:40)   письмо автору
 
 

Задача достаточно тривиальная)
В директории находятся файл-скрипт и описание этого скрипта (*.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($cFilestrrpos($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($entrystrrpos($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.

   
 
 автор: Саня   (30.03.2008 в 22:10)   письмо автору
 
   для: Max Vasin   (30.03.2008 в 17:40)
 

Какой вариант нравится, такой и используйте.

   
 
 автор: mihdan   (30.03.2008 в 22:13)   письмо автору
 
   для: Max Vasin   (30.03.2008 в 17:40)
 

Идентичны, только по скорости немного отличаются

   
 
 автор: Max Vasin   (30.03.2008 в 22:30)   письмо автору
 
   для: 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 отображаются неправильные результаты,
как-будто из кэша что-то само дописывается и проц замедляется позже того как будто-бы сгенерировалась страница.
Тогда как в при тестировании с Оперы , денвер выдаёт совсем другие результаты

   
 
 автор: Atheist   (30.03.2008 в 22:53)   письмо автору
 
   для: 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($v3) . "'>" htmlspecialchars(basename($v)) . "</a><br />\r\n";
    }
    else
    {
        include_once(
$v);    
    }

    echo 
'</td></tr>';
}

echo 
'</table>';
?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования