[PHP] Array auslesen +formatiert in txt speichern

Mike Lowrey

Commodore
Registriert
Juni 2005
Beiträge
4.978
Da ich immernoch ein PHP newbie bin mal wieder ein Problem...:rolleyes:

Wie der Titel schon sagt möchte ich ein Array auslesen und in eine Datei formatiert zu speichern um das zu verwirklichen habe ich schon etwas im I Net gestöbert doch leider nichts gefunden deshalb bitte ich um hilfe. :)


MfG Mike
 
Du musst genauer erklären was du machen willst.
Einfach nur ein Array "auslesen" und schreiben?
Was heißt "formatiert" in eine Datei schreiben? Was sind überhaupt für daten in dem Array?

Guck dir mal eine foreach Schleife an.
 
Ok sorry also
ich habe ein script zum "indexieren von ordnern

PHP:
<?
function getFiles($directory) {
   // Try to open the directory
   if($dir = opendir($directory)) {
       // Create an array for all files found
       $tmp = Array();

       // Add the files
       while($file = readdir($dir)) {
           // Make sure the file exists
           if($file != "." && $file != ".." && $file[0] != '.') {
               // If it's a directiry, list all files within it
               if(is_dir($directory . "/" . $file)) {
                   $tmp2 = getFiles($directory . "/" . $file);
                   if(is_array($tmp2)) {
                       $tmp = array_merge($tmp, $tmp2);
                   }
               } else {
                   array_push($tmp, $directory . "/" . $file);
               }
           }
       }

       // Finish off the function
       closedir($dir);
       return $tmp;
   }
}

// Example of use
print_r(getFiles('.')); // This will find all files in the current directory and all subdirectories

?>
nun gibt dieses eine liste von mp3's innerhalb eines ordners aus(und allen anderen Dateien)
z.B. so
Array ( [0] => ./01 - 3 Doors Down - When I´m gone.mp3 [1] => ./02 - 3 Doors Down - Away from the Sun.mp3 [2] => ./03 - 3 Doors Down - The Road I´m on.mp3 [3] => ./04 - 3 Doors Down - Ticket to Heaven.mp3 [4] => ./05 - 3 Doors Down - Running out of Days.mp3 [5] => ./06 - 3 Doors Down - Here Without you.mp3 [6] => ./07 - 3 Doors Down - I feel you.mp3 [7] => ./08 - 3 Doors Down - Dangerous Game.mp3 [8] => ./09 - 3 Doors Down - Changes Going Down in Flames.mp3 [9] => ./10 - 3 Doors Down - Sarh Yellin.mp3 [10] => ./11 - 3 Doors Down - Bonus Track.mp3 [11] => ./12 - 3 Doors Down - This Time.mp3 [12] => ./away from the sun.m3u [13] => ./cover.jpg [14] => ./index.php )
jetzt sollen alle Tracks untereinander in eine txt oder csv Datei geschrieben werden...
dazu muss das Array ausgelesen werden und in eine Datei geschrieben werden leider habe ich davon noch keinen blassen schimmer(wie ich das lösen soll)

bei Fragen nur fragen :)

MfG Mike
 
Code:
// Verzeichnis einlesen
$files = getFiles('.');

// Datei öffnen/anlegen
$fp = fopen('files.txt', 'w');

// existiert ein gültiger Datei-Handle?
if($fp)
{
	// Array-Elemente einlesen und mit Zeilenumbruch in Datei schreiben
	for($i=0; $i<count($files); $i++)
		fwrite($fp, $files[$i] + '\n';
	// Datei-Handle schließen
	fclose($fp);
}
Code nicht getestet. ;)
 
Code:
		fwrite($fp, $files[$i] + '\n';
ich habe den Code mal eingebaut allerdings stört er sich an oben genannter Zeile "Parse error: parse error, unexpected ';'"
woran könnte das liegen? ohne geht ja schließlich auch nicht...

MfG und trotzdem schon einmal vielen Dank Mike
 
er hat vergessen, eine geöffnete klammer zu schliessen.
Code:
fwrite($fp, $files[$i] + '\n');
 
Code:
fwrite($fp, $files[$i] . '\n');
 
omg das hätte ich auch sehen können :rolleyes:
naja manchmal sieht man den Wald vor lauter Bäumen nicht

Edit: Jetzt klappt das script ansich leider wird der Zeilenumbruch nicht berücksichtigt hat jemand eine Ahnung?

MfG Mike
 
Zuletzt bearbeitet:
Hast du auch den Punkt übernommen (statt dem Plus) ?
 
Für den Zeilenumbruch kannst du das '\n' in "\n" ändern.
Bei den alten PHP-Versionen ging das nur mit den "

Hab selber nie erfahren warum, aber ich komm damit klar :)
 
In Hochkommas (') werden die Zeichen im String so ausgegeben wie sie dringstehen. Strings in Anführungszeichen werden vom Compiler ausgewertet ob dort spezielle Zeichen oder Variablen drinstehen und diese ersetzt.
z.B. \n in ein Zeichen mit dem ASCII-Wert 1 (echo (chr(10) == "\n") ? 'true' : 'false' - ergibt true)

Noch ein Beispiel:
PHP:
$foo = "test";
echo "bar $foo"; // bar test
echo 'bar $foo'; // bar $foo
 
Einleuchtend erklärt, danke. Das sind solche Dinge die man selbst als Programmierer nicht immer wissen will oder muss. Hauptsache et lupt.
 
Zuletzt bearbeitet:
@ enigma

vielen Dank für die Erklärung das hilft mir allgemein nochmal viel weiter!

MfG Mike
 
Zurück
Oben