Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Mały problem z funkcją readdir
Forum PHP.pl > Forum > PHP
Rafael6666
Witam. Chcę zrobić mp3 player, który czyta nazwy utworów z folderu i dodaje je do pliku playlist.xml. Stworzyłem skrypt, ale jest w nim jakiś błąd, ponieważ kiedy go uruchamiam, w pliku playlist.xml w liście odtwarzania zapisuje się nazwa tylko jednego (ostatniego) utworu z folderu. Myślę, że nie jest to duży problem. Proszę o pomoc smile.gif .

Oto kod:

Kod
<?php
if ($handle = opendir('a')) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
$myFile = "playlist.xml";
$fh = fopen($myFile, 'w') or die("Error!!");
fwrite($fh, "<playlist version='1' xmlns='http://xspf.org/ns/0/'><trackList>");
fwrite($fh, "<track><location>a/$file</location></track>");
fwrite($fh, "</trackList></playlist>");
fclose($fh);
}
}
closedir($handle);
}
?>


Chyba nie dużo trzeba w nim zmieniać smile.gif .
AxZx
poczytaj wiecej o fopen($myFile, 'w')
zamien w na a
Cienki1980
Echhh ale jesteś uparty. Wczoraj ładny kawał czasu tłumaczyłem Ci na GG, że musisz wyciągnąć tworzenie pliku XML z pętli while ... bo z każdym obrotem pętli plik tworzy Ci się od nowa nadpisując wartość starą.
  1. <?php
  2.  
  3. //linie numer 1,2,3 umiesc gdzies tutaj
  4. if ($handle = opendir('a')) 
  5. {
  6.  while (false !== ($file = readdir($handle))) 
  7.  {
  8. if ($file != "." && $file != "..") 
  9. {
  10.  $myFile = "playlist.xml";//linia numer 1
  11.  $fh = fopen($myFile, 'w') or die("Error!!");//linia numer 2
  12.  fwrite($fh, "<playlist version='1' xmlns='http://xspf.org/ns/0/'><trackList>");// linia numer 3
  13.  fwrite($fh, "<track><location>a/$file</location></track>");
  14.  fwrite($fh, "</trackList></playlist>");// linia numer 4
  15.  fclose($fh);// linia numer 5
  16. }
  17.  }
  18.  closedir($handle);
  19. }
  20. //a linijkai 4 i 5 umiesc tutaj
  21. ?>

@AxZx danie atrybutu 'a' nic nie da, bo za kazdym razem bedzie mu dopisywalo linijki numer 3 i 4 .. a tak nie wyglada chyba poprawny XML ... no ale mogę się mylić
AxZx
aha, czyli w takim razie w petli powinna byc tylko linijka
  1. <?php
  2. fwrite($fh, "<track><location>a/$file</location></track>");
  3. ?>


sprobuj tak

  1. <?php
  2. $myFile = "playlist.xml";//linia numer 1
  3.  $fh = fopen($myFile, "a") or die("Error!!");//linia numer 2
  4.  fwrite($fh, "<playlist version='1' xmlns='http://xspf.org/ns/0/'><trackList>");// linia numer 3
  5.  
  6. if ($handle = opendir('a')) {
  7.  while (false !== ($file = readdir($handle))) {
  8. if ($file != "." && $file != "..")  {  
  9.  fwrite($fh, "<track><location>a/$file</location></track>");
  10. }
  11.  }
  12.  closedir($handle);
  13. }
  14.  fwrite($fh, "</trackList></playlist>");// linia numer 4
  15.  fclose($fh);// linia numer 5
  16. ?>


albo ewentualnie zamiast zapisywac mozesz przypisac do zmiennej, a pozniej zapisac tylko dane tej zmiennej. czyli funkcja fwrite bedzie uzyta tylko 1 raz.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.