Список каталогов, как Wamp страница в PHP - PullRequest
0 голосов
/ 11 января 2012

Я ищу способ перечислить имена всех папок в каталоге и их путь в PHP

Спасибо

Ответы [ 4 ]

2 голосов
/ 11 января 2012

То, что вы имеете в виду, это не страница из WAMPP, это настройка по умолчанию для отображения файлов и папок на любых (если не на большинстве) веб-серверах ... Обычно это отключается конфигурацией веб-сервера, или .htaccess файлы

Вы ищете какой-то PHP-код для аналогичной работы, вам нужно изучить следующие функции PHP, прочитать страницы и просмотреть примеры, чтобы понять, какиспользовать их ... Не игнорируйте сообщения "Предупреждение" или "Важные" на этих страницах с php.net:

  • opendir - Создает дескриптор каталога для чтения
  • readdir - чтение файлов / папок внутри каталога
  • rmdir - удаление папки (должна быть пустой)
  • mkdir - создает папку

. Вот пример:

<?php
$folder = "myfolder";
if ($dhandle = opendir($folder)) {

  while ($file = readdir($dhandle)) {

  // Ignore . and ..
  if ($file<>'.' && $file<>'..')

  // if it's a folder, echo [F]

  if (is_dir("$folder/$file")) echo "[F] $file<br>"; else
  echo "$file<br>";

  }
closedir($dhandle);
}
?>

Важно Помните, что в ОС Linux, ваш Apache /PHP должен иметь доступ к рассматриваемой папке, прежде чем он сможет писать / удалять файлы и папки ... Читать chmod , chown и chgrp

1 голос
/ 11 января 2012

используйте следующую функцию, чтобы получить путь к файлам / папкам

<?php 

function getDirectory( $path = '.', $level = 0 ){ 

    $ignore = array( 'cgi-bin', '.', '..' ); 
    // Directories to ignore when listing output. Many hosts 
    // will deny PHP access to the cgi-bin. 

    $dh = @opendir( $path ); 
    // Open the directory to the handle $dh 

    while( false !== ( $file = readdir( $dh ) ) ){ 
    // Loop through the directory 

        if( !in_array( $file, $ignore ) ){ 
        // Check that this file is not to be ignored 

            $spaces = str_repeat( '&nbsp;', ( $level * 4 ) ); 
            // Just to add spacing to the list, to better 
            // show the directory tree. 

            if( is_dir( "$path/$file" ) ){ 
            // Its a directory, so we need to keep reading down... 

                echo "<strong>$spaces $file</strong><br />"; 
                getDirectory( "$path/$file", ($level+1) ); 
                // Re-call this same function but on a new directory. 
                // this is what makes function recursive. 

            } else { 

                echo "$spaces $file<br />"; 
                // Just print out the filename 

            } 

        } 

    } 

    closedir( $dh ); 
    // Close the directory handle 

} 
getDirectory( "." ); 
?>
0 голосов
/ 17 сентября 2012

Это php-код, сохраните его как index.php и поместите в корневой веб-каталог.

<?php
$pngFolder = <<< EOFILE
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAA3NCSVQICAjb4U/gAAABhlBMVEX//v7//v3///7//fr//fj+/v3//fb+/fT+/Pf//PX+/Pb+/PP+/PL+/PH+/PD+++/+++7++u/9+vL9+vH79+r79+n79uj89tj89Nf889D88sj78sz78sr58N3u7u7u7ev777j67bL67Kv46sHt6uP26cns6d356aP56aD56Jv45pT45pP45ZD45I324av344r344T14J734oT34YD13pD24Hv03af13pP233X025303JL23nX23nHz2pX23Gvn2a7122fz2I3122T12mLz14Xv1JPy1YD12Vz02Fvy1H7v04T011Py03j011b01k7v0n/x0nHz1Ejv0Hnuz3Xx0Gvz00buzofz00Pxz2juz3Hy0TrmznzmzoHy0Djqy2vtymnxzS3xzi/kyG3jyG7wyyXkwJjpwHLiw2Liw2HhwmDdvlXevVPduVThsX7btDrbsj/gq3DbsDzbrT7brDvaqzjapjrbpTraojnboTrbmzrbmjrbl0Tbljrakz3ajzzZjTfZijLZiTJdVmhqAAAAgnRSTlP///////////////////////////////////////8A////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9XzUpQAAAAlwSFlzAAALEgAACxIB0t1+/AAAAB90RVh0U29mdHdhcmUATWFjcm9tZWRpYSBGaXJld29ya3MgOLVo0ngAAACqSURBVBiVY5BDAwxECGRlpgNBtpoKCMjLM8jnsYKASFJycnJ0tD1QRT6HromhHj8YMOcABYqEzc3d4uO9vIKCIkULgQIlYq5haao8YMBUDBQoZWIBAnFtAwsHD4kyoEA5l5SCkqa+qZ27X7hkBVCgUkhRXcvI2sk3MCpRugooUCOooWNs4+wdGpuQIlMDFKiWNbO0dXTx9AwICVGuBQqkFtQ1wEB9LhGeAwDSdzMEmZfC0wAAAABJRU5ErkJggg==
EOFILE;

if (isset($_GET['img']))
{
       header("Content-type: image/png");
        echo base64_decode($pngFolder);
        exit();
}


$projectsListIgnore = array ('.','..'); 
$handle=opendir(".");
$projectContents = '';
while ($file = readdir($handle)) 
{
    if (is_dir($file) && !in_array($file,$projectsListIgnore)) 
    {       
        $projectContents .= '<li><a href="'.$file.'">'.$file.'</a></li>';
    }
}
closedir($handle);

?>
<ul class="projects">
<?php $projectContents ?>
</ul>
0 голосов
/ 11 января 2012

Существует простое решение этой проблемы: (если вы используете только Linux)

вы хотите перечислить имена каждой папки в каталоге и их путь в PHP.

вы можете использовать команду

 find 

в сочетании с функцией PHP *

exec();

, приведенной в следующем фрагменте

<?php
    $startdir = "Some Directory" ; // the start directory whose sub directories along with path is needed
    exec("find  " . $startdir . " -type d " , $directories); // executes the command and stores the result in array $directory line by line
    while(list($index,$dir) = each($directories) ) {
        echo $dir."<br/>"; //lists directories one by one 
    }
?>

foot notes:

команда,

find dirname -type d

выводит список всех каталогов и подкаталогов в папке startdir

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...