2010-12-22 12 views
0

Ich versuche, einen Dateinamen current.conf zu lesen und dann den Namen eines darin gespeicherten Ordners zu opendir(); wenn ich öffne:.CONF-Datei mit PHP lesen

$file = fopen("current.conf","r"); 
$lines = fread($file,"10"); 
fclose($file); 

$lines = "/".$lines."/"; 

echo $lines; 

$dir=opendir($lines); 

$files=array(); 
while (($file=readdir($dir)) !== false) 
{ 
if ($file != "." and $file != ".." and $file != "index.php") 
{ 
array_push($files, $file); 
} 
} 
closedir($dir); 

Die current.conf hat nur eine Zeile darin:

2.1-2328 

Ich bin nicht in der Lage, den Ordner zu öffnen, die in den Conf-Dateien gestattet. Ich habe das Gefühl, es hat mit der Formatierung der Conf-Datei zu tun, ist aber nicht sicher.

+0

Welche Warnung wird vom opendir-Aufruf ausgegeben? –

+0

Das von der Config aufgerufene Verzeichnis ist korrekt? – RageD

+0

@middaparka kein Fehler Ich denke, sehe meinen Kommentar unten. @RageD ja es hat es gegeben. – Denoteone

Antwort

3

Ich vermute, dass das Verzeichnis nicht vorhanden ist (oder Sie haben nicht die Rechte, es zu lesen), aber ohne einen bestimmten Fehler (opendir ist höchstwahrscheinlich ein E_WARNING werfen - Ihre Protokolle überprüfen, etc.)

Im Übrigen könnten Sie neu schreiben den Code seiner Komplexität zu reduzieren, wie folgt:

<?php 
    // Grab the contents of the "current.conf" file, removing any linebreaks. 
    $dirPath = '/'.trim(file_get_contents('current.conf')).'/'; 

    $fileList = scandir($dirPath); 

    if(is_array($fileList)) { 
     foreach($fileList as $file) { 
      // Skip the '.' and '..' in here as required. 
      echo $file."\n"; 
     } 
    } 
    else echo $dirPath.' cound not be scanned.'; 
?> 

In diesem Fall der Aufruf an scandir wird eine E_WARNING werfen.

+0

Nun, ich habe die Ordnerberechtigungen auf 777 und den Besitzer auf root geändert. Aber ich habe auch den obigen Code benutzt. Ich nahm das führende "/" heraus (das war meine Schuld), aber jetzt funktioniert es. Da ich sie alle auf einmal nicht wusste, was war der eigentliche Fix. Aber danke für die gute Idee, den Code zu kürzen. – Denoteone