Gandalfx86
Lieutenant
- Registriert
- Apr. 2004
- Beiträge
- 734
Ich stehe im Moment irgendwie auf dem Schlauch:
Ich versuche eine Datei zu erstellen, in der in jeder Zeile der Name eine weiteren Datei steht, sozusagen ein Verzeichnis für weitere Dateien. Mit file packe ich das in ein Array. Wenn ich allerdings ein Element des Arrays als Dateinamen weiterverwenden will, sagt der mir die Datei würde nicht existieren, obwohl sie eindeutig vorhanden ist, und auch alle nötigen Zugriffrechte eingestellt sind.
Zur Veranschaulichung:
Die Ausgabe ist folgende:
Line 38:
Obwohl die Ausgabe gleich ist müssen sich die beiden Arrays also irgendwie unterscheiden. Die Frage ist, was ich machen muss, dass der die eingelesenen Dateinamen auch als solche akzeptiert.
Die verzeichnisdatei.txt sieht übrigends so aus:
und ist ISO 8859-15 kodiert.
Ich versuche eine Datei zu erstellen, in der in jeder Zeile der Name eine weiteren Datei steht, sozusagen ein Verzeichnis für weitere Dateien. Mit file packe ich das in ein Array. Wenn ich allerdings ein Element des Arrays als Dateinamen weiterverwenden will, sagt der mir die Datei würde nicht existieren, obwohl sie eindeutig vorhanden ist, und auch alle nötigen Zugriffrechte eingestellt sind.
Zur Veranschaulichung:
PHP:
/*einmal das ganze von Hand */
$einStringArray = array( "datei1.txt", "datei2.txt", "datei3.txt");
/*und das normalerweise identische Array aus der Datei erstellt */
$Zeilen = file('verzeichnisdatei.txt');
if ( $einStringArray == $Zeilen)
echo "Arrays gleich<br>";
else
echo "Arrays nicht gleich<br>";
echo "<br>Array aus Datei:<br>";
foreach ($Zeilen as $key => $value)
echo $key." ".$value."<br>";
echo "<br>selbsterstelltes Array:<br>";
foreach ($einStringArray as $key => $value)
echo $key." ".$value."<br>";
echo "<br>Aufruf ueber selbsterstelltes Array: Dateiname :".$einStringArray[2]."<br>";
$Datei1 = file( $einStringArray[2] );
echo "<br>Aufruf ueber Array von file(): Dateiname :".$Zeilen[2]."<br>";
$Datei2 = file( $Zeilen[2] );
Die Ausgabe ist folgende:
Code:
Arrays nicht gleich
Array aus Datei:
0 datei1.txt
1 datei2.txt
2 datei3.txt
selbsterstelltes Array:
0 datei1.txt
1 datei2.txt
2 datei3.txt
Aufruf ueber selbsterstelltes Array: Dateiname :datei3.txt
Aufruf ueber Array von file(): Dateiname :datei3.txt
Warning: file(datei3.txt ) [function.file]: failed to open stream: No such file or directory in /var/www/phpdev/dateitest/dateitest.php on line 38
Line 38:
PHP:
$Datei2 = file( $Zeilen[2] );
Obwohl die Ausgabe gleich ist müssen sich die beiden Arrays also irgendwie unterscheiden. Die Frage ist, was ich machen muss, dass der die eingelesenen Dateinamen auch als solche akzeptiert.
Die verzeichnisdatei.txt sieht übrigends so aus:
Code:
datei1.txt
datei2.txt
datei3.txt