PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (1): [1]
Найдено сообщений: 8
dimcrash
Отправлено: 08 Августа, 2011 - 08:09:07 • Тема: Рекурсия функции • Форум: Если скрипт не работает
Ответов: 4 Просмотров: 3399
DeepVarvar пишет: if(is_dir($item)) ....
Так он вообще не открывает каталоги, а сканирует только заданную директорию
dimcrash
Отправлено: 08 Августа, 2011 - 07:58:03 • Тема: Рекурсия функции • Форум: Если скрипт не работает
Ответов: 4 Просмотров: 3399
У меня проблема:
Нужно постороить дерево файлов. Если встречается каталог, то функция вызывает сама себя.
PHP:
скопировать код в буфер обмена
function scan( $dir ) {
foreach ( $files as $item ) {
if ( $item == "." or $item == ".." ) continue ;
echo $item . "<br />" ;
if ( is_dir ( "/" . $item ) ) scan
( $dir . "/" . $item ) ;
}
}
scan( "J:/" ) ;
Но здесь она вызывает себя лишь один раз, то есть отображаются файлы лишь на один уровень ниже. Например:
J:/
...home
......192.168.0.102
вместо
J:/
...home
......192.168.0.102
.........www
............и т.д.
Почему это происходит?
dimcrash
Отправлено: 08 Августа, 2011 - 06:57:30 • Тема: Дерево каталогов • Форум: Если скрипт не работает
Ответов: 6 Просмотров: 3127
Каталог указываю правильно, он сканирует, но вместо, например, этого:
J:/
home
192.168.0.102
www
Он выдает лишь:
J:/
home
192.168.0.102
И не сканирует дальше
dimcrash
Отправлено: 05 Августа, 2011 - 10:56:26 • Тема: Дерево каталогов • Форум: Если скрипт не работает
Ответов: 6 Просмотров: 3127
Хочу сделать дерево каталогов.
Пока вот такой вот скрипт:
PHP:
скопировать код в буфер обмена
$path = "J:/" ;
$ndir = $path ;
$olddir = $path ;
$space = NULL ;
function filestree( ) {
GLOBAL $path ;
GLOBAL $ndir ;
GLOBAL $olddir ;
GLOBAL $space ;
foreach ( $files as $item ) {
if ( $item != "." and $item != ".." ) {
echo $space . $item . "<br />" ;
$space .= " " ;
$ndir = $path . "/" . $item ;
$olddir = $path ;
$path = $ndir ;
filestree( ) ;
$path = $olddir ;
$space = NULL ;
}
}
}
}
filestree( ) ;
Были разные варианты, но все сходилось на одном: либо отображает файлы и папки всего на 1 уровеь ниже, либо выводит ошибку (он добавляет в адрес два каталога на одном уровне)
Помогите решить задачу, пожалуйста.
dimcrash
Отправлено: 28 Июля, 2011 - 16:38:24 • Тема: Правильно ли? • Форум: Хранение данных, их вывод и обработка
Ответов: 2 Просмотров: 2072
страницы есть, просто кнопки для переключения пока не сделал. но можно переключать вручную. так все нормально и переделывать не надо?
(Добавление)
Вот скрипт с кнопками:
PHP:
скопировать код в буфер обмена
$page = ( $_GET [ "page" ] ) ?$_GET [ "page" ] : 1 ;
$max = 4 ;
$content = array ( "1" , "2" , "3" , "4" , "5" , "6" , "7" , "8" , "9" , "10" , "11" , "12" , "13" ) ; foreach ( $content as $value ) {
$num ++; }
$pages = ( $num % $max > 0
) ?
floor ( $num / $max ) + 1
: floor ( $num / $max ) ; if ( $pages > 1) {
while ( $numpage != $pages ) { $numpage ++;
if ( $numpage == $page ) {
echo "<b>$numpage </b> " ;
}
else {
echo "<a href=\" http://192.168.0.102/?page=$numpage \" >$numpage </a> " ; }
}
}
if ( $page > $pages ) {
echo "<p>Ошибка! Такой страницы не существует!</p>" ; }
else {
for ( $start = ( $num - 1) - $max * ( $page - 1) , $end = ( $num - 1) - $max * $page , $cur = $start ; $cur != $end ; $cur -- ) {
echo "<p>" . $content [ $cur ] . "</p>" ;
if ( $cur == 0) break ; }
}
$numpage = NULL ;
if ( $pages > 1) {
while ( $numpage != $pages ) { $numpage ++;
if ( $numpage == $page ) {
echo "<b>$numpage </b> " ;
}
else {
echo "<a href=\" http://192.168.0.102/?page=$numpage \" >$numpage </a> " ; }
}
}
dimcrash
Отправлено: 28 Июля, 2011 - 16:15:18 • Тема: Правильно ли? • Форум: Хранение данных, их вывод и обработка
Ответов: 2 Просмотров: 2072
Я сделал что-то типа переключателя страниц.Все работает, но правильно ли составлен скрипт? Нужно исправлять?
PHP:
скопировать код в буфер обмена
$page = ( $_GET [ "page" ] ) ?$_GET [ "page" ] : 1 ;
$max = 4 ;
$content = array ( "Текст 1" , "Текст 2" , "Текст 3" , "Текст 4" , "Текст 5," , "Текст 6" , "Текст 7" ) ; foreach ( $content as $value ) {
$num ++; }
for ( $i = ( $max * ( $page - 1) ) , $cur = $i ; $cur != $i + $max ; $cur ++ ) {
if ( $cur == $num ) break ;
echo "<p>" . $content [ $cur ] . "</p>" ; }
Страниц (1): [1]
Powered by ExBB FM 1.0 RC1. InvisionExBB