Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Mały problem z funkcją readdir, Proszę o pomoc
Rafael6666
post
Post #1





Grupa: Zarejestrowani
Postów: 95
Pomógł: 0
Dołączył: 20.10.2006

Ostrzeżenie: (10%)
X----


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 .


--------------------
Kompleksowe i profesjonalne tworzenie stron www
Go to the top of the page
+Quote Post
AxZx
post
Post #2





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

Ostrzeżenie: (0%)
-----


poczytaj wiecej o fopen($myFile, 'w')
zamien w na a


--------------------
aplikacje internetowe | Symfony
Go to the top of the page
+Quote Post
Cienki1980
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

Ostrzeżenie: (0%)
-----


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ć

Ten post edytował Cienki1980 5.02.2007, 14:22:47


--------------------
404
Go to the top of the page
+Quote Post
AxZx
post
Post #4





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

Ostrzeżenie: (0%)
-----


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.

Ten post edytował AxZx 5.02.2007, 14:51:55


--------------------
aplikacje internetowe | Symfony
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 14:32