if ($handle = opendir('./application/files')) {
while (false !== ($entry = readdir($handle))) {
echo '<a href="'. $entry .'">Скачать вложение</a>';
}
closedir($handle);
}
А это сгенерированный HTML:
<a href=".">Скачать вложение</a>
<a href="..">Скачать вложение</a>
<a href="file1.txt">Скачать вложение</a>
<a href="file2.txt">Скачать вложение</a>
<a href="file3.xls">Скачать вложение</a>
Спустя 4 минуты, 13 секунд (23.07.2012 - 16:53) SerginhoLD написал(а):
Все нормально, данная и предыдущая директории, не хочешь их выводить, напиши условие
Спустя 9 минут, 48 секунд (23.07.2012 - 17:03) pak написал(а):
вместо opendir, readdir, closedir можно использовать
scandir('./application/files');
Спустя 2 минуты, 28 секунд (23.07.2012 - 17:06) Lutsk написал(а):
получается, - только так?
if ($handle = opendir('./application/files')) {
while (false !== ($entry = readdir($handle))) {
if ( $entry != "." && $entry != ".." ) {
echo '<a href="'. $entry .'">Скачать вложение</a>';
}
}
closedir($handle);
}
Спустя 4 минуты, 27 секунд (23.07.2012 - 17:10) pak написал(а):
или так:
$f = './news';
$arr = scandir($f);
for($i = 2; $i < count($arr); $i++)
echo '<a href="'. $arr[$i] .'">Скачать вложение</a><br />';
Спустя 9 минут, 25 секунд (23.07.2012 - 17:19) Lutsk написал(а):
Ок, pak, спасибо, с меня +!
Спустя 50 минут, 27 секунд (23.07.2012 - 18:10) RCuPeR написал(а):
Цитата (pak @ 23.07.2012 - 14:10) |
или так:
|
Правила хорошего тона гласят, что нельзя вносить count() в условие цикла.
Ну... Это если совсем идеальный скрипт делать
![smile.gif](http://phpforum.su/html/emoticons/smile.gif)
Спустя 5 минут, 48 секунд (23.07.2012 - 18:16) kamanch написал(а):
pak
Чисто теоретический вопрос:
файлы "." и ".." во всех ОС, любых файловых системах, при любых настойках всегда выдаются на первых 2х позициях?
Чисто теоретический вопрос:
файлы "." и ".." во всех ОС, любых файловых системах, при любых настойках всегда выдаются на первых 2х позициях?
Спустя 7 минут, 51 секунда (23.07.2012 - 18:24) pak написал(а):
RCuPeR
как то не задумывался об этом, а почему, где то написано? =)
h.n.81
наверно)
как то не задумывался об этом, а почему, где то написано? =)
h.n.81
наверно)
Спустя 15 минут, 58 секунд (23.07.2012 - 18:39) kamanch написал(а):
Наверное - это не наш подход :)
Значит
Значит
for($i = 2; $i < count($arr); $i++)гепотетически может сработать криво.
Спустя 1 час, 31 минута, 29 секунд (23.07.2012 - 20:11) RCuPeR написал(а):
Цитата (h.n.81 @ 23.07.2012 - 15:39) |
Наверное - это не наш подход :) Значит for($i = 2; $i < count($arr); $i++)гепотетически может сработать криво. |
Значит, что count(); выполняется при каждой итерации. Что при больших объемах обрабатываемой информации, хоть и не значительно, но повлияет на производительность.
Спустя 8 минут, 39 секунд (23.07.2012 - 20:20) pak написал(а):
RCuPeR
дада помню, где то читал об этом)
дада помню, где то читал об этом)
Спустя 1 час, 47 минут, 32 секунды (23.07.2012 - 22:07) SerginhoLD написал(а):
Цитата (RCuPeR @ 23.07.2012 - 17:11) |
Значит, что count(); выполняется при каждой итерации. |
лютый бред
Спустя 4 минуты, 15 секунд (23.07.2012 - 22:11) kamanch написал(а):
SerginhoLD
Зачем так грубо? Тем более необосновано.
Пишем тестовый пример, и смотрим результат.
В теле цикла меняем размерность массива, и потом тут постим истину.
Зачем так грубо? Тем более необосновано.
Пишем тестовый пример, и смотрим результат.
В теле цикла меняем размерность массива, и потом тут постим истину.
Спустя 15 минут, 30 секунд (23.07.2012 - 22:27) kamanch написал(а):
Суд постановил, что SerginhoLD мелкий грубиян из-под кровати.
Вывод:
$arr = array(1, 2, 3, 4, 5);
for($i = 0; $i < count($arr); $i++){
echo '$arr['.$i.'] => '.$arr[$i]."<br />";
if($i == 3 ) $arr[] = 6;
}
Вывод:
$arr[0] => 1
$arr[1] => 2
$arr[2] => 3
$arr[3] => 4
$arr[4] => 5
$arr[5] => 6
Спустя 45 секунд (23.07.2012 - 22:28) SerginhoLD написал(а):
Цитата (h.n.81 @ 23.07.2012 - 19:11) |
В теле цикла меняем размерность массива, и потом тут постим истину. |
извините, но это быдлокод на практике, в циклах foreach и for массивы только перебираются.
Спустя 6 минут, 1 секунда (23.07.2012 - 22:34) killer8080 написал(а):
SerginhoLD
count() будет вызываться на каждой итерации цикла, это факт
count() будет вызываться на каждой итерации цикла, это факт
![wink.gif](http://phpforum.su/html/emoticons/wink.gif)
Спустя 2 минуты, 28 секунд (23.07.2012 - 22:36) kamanch написал(а):
SerginhoLD
Какой быдлокод?
Это тестовый пример, который показывает тебе как работает цикл for
И пример этот должен был тебе показать то, что при каждой новой итерации цикл заново вычисляет все свои аргументы.
А быдлокод получается, когда быдлокодер начинает пренебрегать такими вещами и вместо того, чтобы циклу дать в аргументах уже вычесленные значения, заставляет его каждый раз их вычислять.
Какой быдлокод?
Это тестовый пример, который показывает тебе как работает цикл for
И пример этот должен был тебе показать то, что при каждой новой итерации цикл заново вычисляет все свои аргументы.
А быдлокод получается, когда быдлокодер начинает пренебрегать такими вещами и вместо того, чтобы циклу дать в аргументах уже вычесленные значения, заставляет его каждый раз их вычислять.
Спустя 11 минут, 12 секунд (23.07.2012 - 22:47) SerginhoLD написал(а):
Цитата (h.n.81 @ 23.07.2012 - 19:36) |
Какой быдлокод? |
самый настоящий
Цитата (h.n.81 @ 23.07.2012 - 19:36) |
Это тестовый пример, который показывает тебе как работает цикл for |
ок
Цитата (h.n.81 @ 23.07.2012 - 19:36) |
И пример этот должен был тебе показать то, что при каждой новой итерации цикл заново вычисляет все свои аргументы. |
"не до цитировал" я..
Цитата (h.n.81 @ 23.07.2012 - 19:36) |
А быдлокод получается, когда быдлокодер начинает пренебрегать такими вещами и вместо того, чтобы циклу дать в аргументах уже вычесленные значения, заставляет его каждый раз их вычислять. |
1. На практике чаще всего используется foreach, он в любом случае жрет больше
2. Чтоб напрячь такой скрипт вычислениями через count, надо так от миллиона записей перебор делать, что означает присутствие быдлокодера, если сформировано такое кол-во
![smile.gif](http://phpforum.su/html/emoticons/smile.gif)
Спустя 3 минуты, 14 секунд (23.07.2012 - 22:51) killer8080 написал(а):
Цитата (SerginhoLD @ 23.07.2012 - 22:47) |
1. На практике чаще всего используется foreach, он в любом случае жрет больше |
абсурд
Цитата (SerginhoLD @ 23.07.2012 - 22:47) |
2. Чтоб напрячь такой скрипт вычислениями через count, надо так от миллиона записей перебор делать, что означает присутствие быдлокодера |
какой смысл заставлять интерпретатор выполнять бессмысленные действия?
![smile.gif](http://phpforum.su/html/emoticons/smile.gif)
Спустя 3 минуты, 12 секунд (23.07.2012 - 22:54) SerginhoLD написал(а):
Цитата (killer8080 @ 23.07.2012 - 19:51) |
какой смысл заставлять интерпретатор выполнять бессмысленные действия? |
создание отдельной переменной такое же бессмысленное действие
![wink.gif](http://phpforum.su/html/emoticons/wink.gif)
Цитата (killer8080 @ 23.07.2012 - 19:51) |
абсурд |
вот ты полностью процитировал, даже не знаю про что спорить
![smile.gif](http://phpforum.su/html/emoticons/smile.gif)
Спустя 4 минуты, 57 секунд (23.07.2012 - 22:59) killer8080 написал(а):
Цитата (SerginhoLD @ 23.07.2012 - 22:54) |
создание отдельной переменной такое же бессмысленное действие |
переменные для того и нужны, чтоб хранить результат вычеслений, а вот вычислять размер массива на каждой итерации, чтоб получить одно и то же значение, полный бред.
Цитата (SerginhoLD @ 23.07.2012 - 22:54) |
Цитата (killer8080 @ 23.07.2012 - 19:51) абсурд вот ты полностью процитировал, даже не знаю про что спорить |
Если и существует разница в быстродействии for vs foreach, то она настолько ничтожна, что не имеет смысла о ней говорить.
Спустя 3 минуты, 9 секунд (23.07.2012 - 23:02) SerginhoLD написал(а):
Цитата (killer8080 @ 23.07.2012 - 19:59) |
Если и существует разница в быстродействии for vs foreach, то она настолько ничтожна, что не имеет смысла о ней говорить. |
вот-вот с count и отдельной переменной тоже самое, но не я это начал
Спустя 7 минут, 30 секунд (23.07.2012 - 23:09) kamanch написал(а):
SerginhoLD
Тебя оправдывает лишь то, что тебе 21 год, и ты подсознательно уже принял правоту старших товарищией, но твое юношеское эго еще борется с этим![smile.gif](http://phpforum.su/html/emoticons/smile.gif)
Это не страшно, это пройдет...
А чтобы закрепить, вот еще один тестовый пример в ответ на твое
Тебя оправдывает лишь то, что тебе 21 год, и ты подсознательно уже принял правоту старших товарищией, но твое юношеское эго еще борется с этим
![smile.gif](http://phpforum.su/html/emoticons/smile.gif)
Это не страшно, это пройдет...
А чтобы закрепить, вот еще один тестовый пример в ответ на твое
Цитата |
создание отдельной переменной такое же бессмысленное действие |
Нам нужно в цикле програть что-то такое количество раз, сколько у нас пользователей в базе.
А количество пользователей нам возвращает функция users_count();
Так что лучше?
Один раз присвоить переменной значение этой функции и аргументом в цикл передать эту переменную?
Или же вставить в качестве аргумента в цикле эту функцию? Тоже будет работать, но при каждой итерации цикла мы будем дергать базу. В базе 1000 пользователей? Вот 1000 ненужных запросов и породим.
Оно нам таки надо?
Спустя 4 минуты, 11 секунд (23.07.2012 - 23:14) SerginhoLD написал(а):
Цитата (h.n.81 @ 23.07.2012 - 20:09) |
А количество пользователей нам возвращает функция users_count(); |
Давай еще свой цикл создадим(какой-нибудь forhn81), не мешай откровенно разные вещи, тут вопрос про count() и только
Свернутый текст
Цитата (h.n.81 @ 23.07.2012 - 20:09) |
Тебя оправдывает лишь то, что тебе 21 год, и ты подсознательно уже принял правоту старших товарищией, но твое юношеское эго еще борется с этим |
один я не смотрю кому сколько лет на этом форуме? что за фобии? я не знаю кто тут "старший товарищ"
Спустя 2 минуты, 41 секунда (23.07.2012 - 23:16) killer8080 написал(а):
Цитата (SerginhoLD @ 23.07.2012 - 22:07) |
Цитата (RCuPeR @ 23.07.2012 - 17:11) Значит, что count(); выполняется при каждой итерации. лютый бред |
SerginhoLD
почему бы просто не признать что был не прав?
Спустя 10 часов, 31 минута, 10 секунд (24.07.2012 - 09:47) RCuPeR написал(а):
Цитата (SerginhoLD @ 23.07.2012 - 19:07) | ||
лютый бред |
Если ты действительно отрицаешь выполнение функции count(); при каждом проходе цикла - дискуссию стоит завершить, разговоры ни о чем.