PDA

Просмотр полной версии : readdir


barnaki
08.01.2009, 20:55
почему если закоментить все с if то все нормально считает . а если нет то лезет в вверхний каталог .
я же пишу opendir("./$file")

<?php
$dir = opendir("../books");
while(($file = readdir($dir)) !== false )

{


echo "$file<br />";
if ($file != '.' || $file != '..' ) {
$bookdir = opendir("./$file");

while (($link = readdir($bookdir)) !== false)
{
echo "$link <br />";
}
closedir($bookdir); }



}

closedir($dir);


?>

barnaki
08.01.2009, 21:07
у меня в книге написанно цитата :
chdir ("./js"); // переход в подкаталог текущего каталога . это ошибка ?

astrologer
08.01.2009, 21:08
if ($file != '.' || $file != '..' )
Тут должно быть &&

Kaimi
08.01.2009, 21:10
readdir к файлам это жестоко, а что хочешь получить в итоге?

astrologer
08.01.2009, 21:15
readdir к файлам это жестоко, а что хочешь получить в итоге? И правда :)

barnaki
08.01.2009, 21:19
там короче папка в которой папки в книгами. папки там c++ или html называются . вот в этот скрипт прихожу где то из ../php/show_books.php
я хочу чтобы оно входило не только в тот каталог но еще и в попкаталоги. и выводило список файлов из тех папок который выводит первый readdir

barnaki
08.01.2009, 21:24
я написал так но все пишет :
Warning: scandir(/html) [function.scandir]: failed to open dir: No error in C:\php_files\home\banderas\site_gosti\php\show_boo ks.php on line 38

Warning: scandir() [function.scandir]: (errno 0): No error in C:\php_files\home\banderas\site_gosti\php\show_boo ks.php on line 38


$dir = opendir("../books");
while(($file = readdir($dir)) !== false )

{


echo "$file<br />";
if ($file != '.' || $file != '..' ) {
$files = scandir($file) ;
echo "<pre>";
print_r($files);
echo "</pre>"; }



}

closedir($dir);

Pashkela
08.01.2009, 21:47
Солнышко, потому что иначе это шелл, просто шелл, что практически равно взлом, особенно если у тебя виртуальный невыделенный хостинг

barnaki
08.01.2009, 22:15
так а что можно сделать ? как это обойти ?

Pashkela
08.01.2009, 22:20
закоментить все с if то все нормально считает


чем не устраивает??

barnaki
08.01.2009, 22:22
так оно считает содержимое \books а там только папки а мне надо содержимое этих папок

Pashkela
08.01.2009, 22:31
http://script4u.ru/php/file/431-phpbrowser-1.0.html

вот весьма грамотная реализация, на мой взгляд, вообще, чтения и т.д.

barnaki
08.01.2009, 22:37
спасибо посмотрю

Gifts
08.01.2009, 23:31
barnaki мм? <pre><?php

$dir = "./somedir";

function recurs($dir,$tab="")
{
if(!is_dir($dir)) return;

$dirs = scandir($dir);

foreach ($dirs as $one)
{
if ($one =='.' || $one =='..') continue;
$path = realpath($dir.'/'.$one);
if (is_dir($path)) {echo $tab.'['.$one."]\r\n";recurs($path,$tab."\t");continue;}
echo "$tab$one\r\n";
}
}

recurs($dir);

?>