tutorials.de Buch-Aktion 02/2012
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
140
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von 28dayslater
    28dayslater 28dayslater ist offline Mitglied Silber
    Registriert seit
    Jan 2008
    Beiträge
    80
    Ich weiss nicht, wo mein Fehler liegt, aber ich erläutern eben das Problem. Ich habe eine Text-Datei in der ich Dateinamen speichere(zeilenweise,jedoch ohne Pfadangabe).

    Code :
    1
    2
    3
    
    database.php
    template.php
    units.php
    Ich definiere die Pfadangabe zu genau dieser Text-Datei und zum Ordner so:

    PHP-Code:
    <?php
    //Systemeinstellungen
    define('BOOT',"./include/boot.txt");
    define('SYSTEM',"./include/system/");
    ?>
    So, jetzt in meinem Script will ich die Text-Datei auslesen und die Dateien einbinden (natürlich mit der Konstante "SYSTEM" als Pfadangabe zu diesen Dateien:

    PHP-Code:
    if ( is_file(BOOT) ) {
             
    //Boot-File auslesen
             
    $boot fileBOOT );

             if ( !empty(
    $boot) ){
                     
    //Array durchlaufen und....
                     
    for($i 0$i count($boot); $i++) {
                             
    //....Dateien nacheinander einbinden
                              
    if ( is_fileSYSTEM.$boot[$i]) ) {
                                     include(
    SYSTEM.$boot[$i]);

                             }
                     }
             }



    Hier tritt das Problem auf, da immer nur die letzte Datei, die in der Text-Datei vermerkt ist, eingebunden wird, weil die anderen 2 Dateien angeblich nicht gefunden werden.

    Alternativ habe ich deshalb versucht den Ordner einfach auszulesen und siehe da, es funktioniert.

    PHP-Code:
    <?php
                      $files
    =glob(SYSTEM."*.php");
                      foreach (
    $files as $filename) {
                             include(
    $filename);
                      }
    ?>
    Die Pfadangaben stimmen komplett überein, wenn ich bei beiden Scripts die Dateinamen ausgeben lasse.

    Wo liegt hier also der Fehler?

    mfg 28
     

  2. #2
    splasch splasch ist offline Mitglied Brillant
    Registriert seit
    Jul 2004
    Beiträge
    852
    Las den punkt bei der pfad angabe weg oder mache 2 punkte. Je nach dem in welcher Verzeichniss eben du die befindest. Wenn du ganz sicher gehen willst dann verwende relative Pfad angaben.

    Mfg Splasch
     

  3. #3
    Cojote Cojote ist offline Mitglied Gold
    Registriert seit
    Oct 2006
    Beiträge
    110
    Ich bin mir nicht sicher aber ich würde tippen dass dein Problem mit dem einlesen der boot.txt zusammenhängt.
    Beim einlesen mittels file() bleibt der Zeilenumbruch erhalten und ist teil der Strings in deinem Array. Versuchs mal mit
    if ( is_file( SYSTEM.trim($boot[$i])) ) {
    include(SYSTEM.trim($boot[$i]))

    Ich würde die Variable $boot zusätzlich auf typsicherheit prüfen oder zumindest darauf ob ihr Inhalt false ist.
     

  4. #4
    Avatar von 28dayslater
    28dayslater 28dayslater ist offline Mitglied Silber
    Registriert seit
    Jan 2008
    Beiträge
    80
    Jau fett. Danke Coyote. Daran hab ich nun garnicht gedacht, aber es stimmt. Funktioniert mit trim() perfekt. Danke!
     

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 16.06.10, 19:40
  2. Probleme mit include
    Von Disasterp1ece im Forum PHP
    Antworten: 10
    Letzter Beitrag: 11.03.09, 19:24
  3. Probleme mit Schleifen
    Von mexmano im Forum PHP
    Antworten: 4
    Letzter Beitrag: 22.09.04, 22:46
  4. probleme mit include
    Von janosch im Forum PHP
    Antworten: 3
    Letzter Beitrag: 02.12.03, 19:37
  5. Probleme mit include
    Von Oli im Forum PHP
    Antworten: 5
    Letzter Beitrag: 09.06.02, 15:59