|
|
|
|
|
для: cheops
(10.08.2005 в 13:02)
| | А если так...
<?php
for ($i=0;$i<sizeof($dirs);$i++)
{
$name = $dirs[$i];
($i<>0)? print "<br>":"";
print $name;
}
?>
|
| |
|
|
|
|
|
|
|
для: totx
(10.08.2005 в 10:21)
| | Можно добавить вывод директории и проверку, является ли элемент массива последним
<?php
$folder = 'temp';
$dir = opendir($folder);
while($line = readdir($dir))
{
if(is_dir($folder."/".$line) && $line!="." && $line!="..")
{
$dirs[] = $line;
$i++;
}
}
sort($dirs);
for ($i=0;$i<sizeof($dirs);$i++)
{
$name = $dirs[$i];
if($i < sizeof($dirs) - 1) print $folder."/".$name."<br>";
else print $folder."/".$name;
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(08.08.2005 в 13:28)
| | А если мы опять возьмем старый добрый код:
<?php
$folder = 'temp';
$dir = opendir($folder);
while($line = readdir($dir))
{
if(is_dir($folder."/".$line) && $line!="." && $line!="..")
{
$dirs[] = $line;
$i++;
}
}
sort($dirs);
for ($i=0;$i<sizeof($dirs);$i++)
{
$name = $dirs[$i];
print "".$name."<br>";
}
?>
|
Но в данном случае нам нужно, чтобы у нас:
1) должен быть вывод имен всех дирректорий без обрезания имен
2) Как мы видим print "".$name."<br>"; напечатает их нам с переводом каждого последующего имени на следующую строку (<br> стоит). Так вот нужно, чтобы при выводе имени последней дирректории, тег <br> не прописывался (убить последний <br>)
3. Все это должно быть в:
for ($i=0;$i<sizeof($dirs);$i++)
{
все действия вывода имен дирректорий проходят здесь и только здесь.
}
|
Если, что-то не ясно объяснил, могу поподробнее. | |
|
|
|
|
|
|
|
для: cheops
(10.08.2005 в 01:45)
| | Большое СПАСИБО, всё работает. | |
|
|
|
|
|
|
|
для: totx
(10.08.2005 в 01:01)
| | Для решения этой задачи следует просто уменьшить число циклов на 1
<?php
$folder = 'temp';
$dir = opendir($folder);
while($line = readdir($dir))
{
if(is_dir($folder."/".$line) && $line!="." && $line!="..")
{
$dirs[] = $line;
$i++;
}
}
sort($dirs);
for ($i=0;$i<sizeof($dirs) - 1;$i++)
{
$name = $dirs[$i];
print "".$name."<br>";
}
// Выводим имя последней директории за вычитом последних двух символов
echo substr($dirs[count($dirs) - 1],0,strlen($dirs[count($dirs) - 1]) - 2);
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(10.08.2005 в 00:45)
| | Спасибо конечно за ответ, но нужно чтобы выводило не:
а
Разницу видите? Вот это то у меня и вызвало проблему. Извиняюсь, что плохо объяснил задачу. | |
|
|
|
|
|
|
|
для: totx
(10.08.2005 в 00:21)
| | Ну во первых это не мой скрипт :))) а во вторых всё правильно
5551
22
333
4444
55555
Сначала урезанная 55555, а потом всё остальное - просто сместите вывод директории в конец
<?php
$folder = 'temp';
$dir = opendir($folder);
while($line = readdir($dir))
{
if(is_dir($folder."/".$line) && $line!="." && $line!="..")
{
$dirs[] = $line;
$i++;
}
}
sort($dirs);
for ($i=0;$i<sizeof($dirs);$i++)
{
$name = $dirs[$i];
print "".$name."<br>";
}
// Выводим имя последней директории за вычитом последних двух символов
echo substr($dirs[count($dirs) - 1],0,strlen($dirs[count($dirs) - 1]) - 2);
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(10.08.2005 в 00:10)
| | что-то он не корректно работает, вместо того чтобы выдавать:
1
22
333
4444
555
555 - это урезанная 55555
а ваш скрипт выдает:
5551
22
333
4444
55555
| |
|
|
|
|
|
|
|
для: totx
(09.08.2005 в 22:42)
| | Тогда лучше эту задачу решить следующим образом
<?php
$folder = 'temp';
$dir = opendir($folder);
while($line = readdir($dir))
{
if(is_dir($folder."/".$line) && $line!="." && $line!="..")
{
$dirs[] = $line;
$i++;
}
}
sort($dirs);
// Выводим имя последней директории за вычитом последних двух символов
echo substr($dirs[count($dirs) - 1],0,strlen($dirs[count($dirs) - 1]) - 2);
for ($i=0;$i<sizeof($dirs);$i++)
{
$name = $dirs[$i];
print "".$name."<br>";
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(09.08.2005 в 21:05)
| | В отсортированном списке !!! | |
|
|
|
|