Ordner auslesen & Dateien includen

Guten Tag,

Ich möchte gerne einen Ordner auslesen und die dort befindlichen Textdateien (Nach der Reihenfolge des Dateinamens z.B. 1.txt , 2.txt ... etc.) includen.

Folgenden Code habe ich dafür bis jetzt benutzt:

Code:
<?
function echodir($path = "users/test/gb")
{
    $dir = dir($path);
    while(false !== ($file = $dir->read()))
    {
        if(("."  == $file) OR (".." == $file))
            continue;
        
        
        if ($file=="filelist.php"){
        }
        else{           
            $str = "$path/$file";
            $str = substr($str,0);
            $str = ''.$str."<br>";
            echo ($str);            
          
        }
      
    }
$dir->close();
}

echodir();
?>

Mit diesen Code werden die Textdateien aufgelistet.
Wie kann ich diese nun includen?

Ich glaube, dass Ich hierfür Arrays benutzen muss.
Ich bitte um eure Mithilfe.

Mit freundlichen Grüßen,
Georg

:)
 
Da du die Dateien immer immer gleich benennst (zahl.txt) würde ich dir diesen Lösungsweg vorschlagen:

PHP:
function savedir($path = "users/test/gb")
{
    $dir = dir($path);
    $cnt=0;
    while(false !== ($file = $dir->read()))
    {
        if(("."  == $file) OR (".." == $file))
            continue;
        
        
        if ($file=="filelist.php"){
        }
        else{           
            $dir_arr[]=$file;
            $dir_arr['elements']=$cnt;
            $cnt++;
        }
      
    }
$dir->close();
return $dir_arr;
}

$dir_arr=savedir();
 
for($x=1;$x<$dir_arr['elements'];$x++){
    if(file_exists("users/test/gb{".$dir_arr[$x]){
        include("users/test/gb{".$dir_arr[$x]);
    }
}


mfg
Nero
 
Zuletzt bearbeitet:
Bist du sicher, dass du die alle Includen willst:confused:
Ohne .htaccess ist PHP-Code in .txt-Dateien für jedermann sichtbar!
Und wenn dann mal ne andere Datei dazwischen ist, ist Chaos vorprogrammiert ;)

nichts desto trotz:
PHP:
function echodir($path = "users/test/gb")
{
    $dir = dir($path);
    while(false !== ($file = $dir->read()))
    {
        if(("."  == $file) OR (".." == $file))
            continue;
        
        
        if ($file=="filelist.php"){
        }
        else{           
            $str = "$path/$file";
            $return_value[] = $str; // alle Dateinamen in einem Array ablegen
            $str = substr($str,0);
            $str = ''.$str."<br>";
            echo ($str);            
          
        }
      
    }
$dir->close();
return $return_value;
}

$dateien = echodir();
Und dann includen: (Vorher kannst du das Array noch nach Belieben sortieren)
PHP:
foreach($dateien as $datei){
include($datei);
}

Andere Möglichkeit: anstatt $return_value[] = $str; // alle Dateinamen in einem Array ablegen
gleich includen, also include($str);

Aber überleg dir lieber nochmal was du erreichen willst...! Zumindest nur.php-Dateien includen z.B.
 
Vielen Dank für eure schnelle Hilfe!

Die Texte können ruhig für jedermann sichtbar sein.
Im Ordner befinden sich nur Textdateien, die für jeden offen sind.
:)

Edit: Es funktioniert nicht.
Ich habe druckos Lösungsvorschlag genommen..

Ich bekomme folgende Fehlermeldung:

"Warning: Invalid argument supplied for foreach() in F:\xampp\htdocs\myberlin\gbshow.php "
 
Zuletzt bearbeitet:
Du musst bei drucko's Vorschlag in der Funktion die Dateien noch in Array's speichern.

[edit]
Hab' übersehen das er das doch gemacht hat, hm... komisch!
[/edit]
 
Zuletzt bearbeitet:
Hm... was überseh ich ?! ;)
Probiers damit nochmal:

PHP:
function get_dir_files($path = "users/test/gb")
{
    $dir = dir($path);
    $return_value = array();
    $count = 0;
    while(false !== ($file = $dir->read()))
    {
        if($file == "." OR $file == ".." OR $file == "filelist.php")
            continue;

        $return_value[$count] = $file;
        $count++;
    }
   $dir->close();
   return $return_value;
} 

$dateien = get_dir_files();

foreach($dateien as $key => $value){
  include("users/test/gb/".$value);
}
 
Ich habe bei php.net ein bischen nachgestöbert.

Also um die Dateien in einen Array abzuspeichern würde ich

$Dateien = array($str); benutzen..

Dies funktioniert aber leider nicht. Ich würde euch auch diesmal gerne um einen Lösungsweg bitten.

Ich weiß ich bin ziehmlich nervend, tut mir leid :(
Ich danke euch!
 
Zurück