Witajcie.

Niewiem czy dobrze nazwałem temat. Żeby się nie rozpisywać napiszę schemat skryptu w jaki sposob ma działać i co chce otrzymać.
Przykładowo opisywać będę na playliście m3u programu Winamp.

1. Za posrednictwem bazy myswl inportuje adresy url do plikow mp3 w petli

  1. echo "#EXTM3U<br><br>";
  2.  
  3. petla
  4. {
  5. echo "#EXTINF:-1,$NAZWA_UTWORU<br>";
  6. echo "$ADRES_URL<br><br>";
  7. }


w ten sposob wygeneruje przykladowa playliste:

  1. #EXTM3U
  2.  
  3. #EXTINF:-1,Utwor 1
  4. [url="http://serwer.pl/1.mp3"]http://serwer.pl/1.mp3[/url]
  5.  
  6. #EXTINF:-1,Utwor 2
  7. [url="http://serwer.pl/2.mp3"]http://serwer.pl/2.mp3[/url]
  8.  
  9. #EXTINF:-1,Utwor 3
  10. [url="http://serwer.pl/3.mp3"]http://serwer.pl/3.mp3[/url]


Teraz ten wygenerowany kod chciałbym załadować jako plik sluchaj.m3u

Jak to zrobić ?

Ważną informacją jest to, że raczej nie mogę użyć funkcji zapisania wygenerowanego kodu do pliku sluchaj.m3u znajdujacego sie na serwerze, poniewaz w momencie gdy np. 10 osob robilo by operacje generowania kodu, kazdy z opoznieniem np. 1ms pojawily by sie problemy. przynajmniej tak mysle. Sory ze tak po omacku opisalem o co mi chodzi, ale jestem kiepski jesli chodzi o php praca na plikach. Prosze o pomoc. Wiem, ze na samym koncu bedzie potrzebna funkcja readfile do wczytania pliku, kod playlisty wygenerowac umiem, mam tylko problem w jaki sposob dodac wygenerowany kod do wczytania go do pliku.

Na chwile obecna napisalem cos takiego:

index.php
  1. echo '<form action="sluchaj.php" method="post">';
  2. echo '<textarea name="playlista" style="width: 600px; height: 250px">';
  3.  
  4. ////////////////////////////// Tresc playlisty
  5.  
  6. echo "#EXTM3U
  7.  
  8. #EXTINF:180,Jochen Miller - Bamm! (Radio Mix) [ www.djplate.prv.pl ]
  9. D:\DJ Plate\Music Pack\DJ Plate Music Pack 2012\DJ Plate Music Pack 2012 Vol. 3 [ www.djplate.prv.pl ]\mp3\Bamm [ www.djplate.prv.pl ].mp3
  10.  
  11. #EXTINF:192,Niels Van Gogh feat. Emilio Verdez - Beatrocker (Radio Version) [ www.djplate.prv.pl ]
  12. D:\DJ Plate\Music Pack\DJ Plate Music Pack 2012\DJ Plate Music Pack 2012 Vol. 3 [ www.djplate.prv.pl ]\mp3\Beatrocker [ www.djplate.prv.pl ].mp3
  13.  
  14. #EXTINF:191,Estiva feat. Josie - Better Days (Norin & Rad Remix Edit) [ www.djplate.prv.pl ]
  15. D:\DJ Plate\Music Pack\DJ Plate Music Pack 2012\DJ Plate Music Pack 2012 Vol. 3 [ www.djplate.prv.pl ]\mp3\Better Days [ www.djplate.prv.pl ].mp3";
  16. //////////////////////////////////////////////////////////////
  17. echo '</textarea><br><br>';
  18. echo '<input type="submit" value="Sluchaj">';
  19. echo '</form>';


sluchaj.php
  1. $dane = $_POST['playlista'];
  2.  
  3.  
  4. // usuniecie starego istniejacego pliku
  5. unlink ("sluchaj.m3u");
  6.  
  7.  
  8. // przypisanie zmniennej $file nazwy pliku
  9. $file = "sluchaj.m3u";
  10.  
  11. // uchwyt pliku, otwarcie do dopisania
  12. $fp = fopen($file, "a");
  13.  
  14. // blokada pliku do zapisu
  15. flock($fp, 2);
  16.  
  17. // zapisanie danych do pliku
  18. fwrite($fp, $dane);
  19.  
  20. // odblokowanie pliku
  21. flock($fp, 3);
  22.  
  23. // zamknięcie pliku
  24. fclose($fp);
  25.  
  26. //////////////////////////////////////////////////////////////////////////////
  27.  
  28. $nazwa_pliku = "sluchaj.m3u"; /// nazwa pliku z rozszerzeniem
  29. $adres_pliku = "sluchaj.m3u"; /// adres docelowy do pliku
  30. ///////
  31. header("Content-Type: Application/Force-Download"); /// typ pobieranego pliku jako domyslny
  32. header('Content-Disposition: attachment; filename="'.$nazwa_pliku.'"'); /// nazwa z jaka plik sie zapisze
  33. header('Content-Transfer-Encoding: binary'); /// questionmark.gif?
  34. readfile("$adres_pliku"); /// adres docelowy do pliku


Ale jak widac wszystko odbywa sie na pliku, i niewiem czy nie byloby komplikacji, jesli zaluzmy 1000 osob w tym samym momencie zaczeloby generowac sobie plik w celu posluchania muzyki smile.gif