![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 164 Pomógł: 3 Dołączył: 13.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam ponownie :-)
Raczkuję w PHP; czy ktoś podpowie mi jak zabrać się za wyciąganie danych z takiego pliku txt: Kod # xmcd CD database file # # Track frame offsets: # 150 # 22823 # 35562 # 53667 # 73763 # 89265 # 109452 # 122224 # 143059 # 155970 # # Disc length: 2286 seconds # # Revision: 0 # Processed by: cddbd v1.5.2PL0 Copyright (c) Steve Scherf et al. # Submitted via: CDex 1.70beta2 # DISCID=8c08ec0a DTITLE=Arcana / Raspail DYEAR=2008 DGENRE=Darkwave TTITLE0=Abrakt TTITLE1=Sight of Relief TTITLE2=Invisible Motions TTITLE3=Outside Your World TTITLE4=Parisal TTITLE5=Autumnal TTITLE6=Out of the Grey Ashes TTITLE7=Lost in Fire TTITLE8=Remembrance TTITLE9=Circumspection EXTD= YEAR: 2008 EXTT0= EXTT1= EXTT2= EXTT3= EXTT4= EXTT5= EXTT6= EXTT7= EXTT8= EXTT9= PLAYORDER= ... aby na stronie wyświetlić ładnie dane płyty w sposób mniej więcej taki: Cytat WYKONAWCA - Arcana TYTUŁ - Raspail ROK - 2008 TT - 2286 sek (zamieniam na H:S) TYTUŁY UTWORÓW:
(itd) poniżej byłaby recenzja. Bazę MySQL wyobrazam sobie mniej wiecej tak: Kod CREATE TABLE `muzyka_cd` ( `id` int( 11 ) NOT NULL AUTO_INCREMENT , `cddb` varchar( 50 ) NOT NULL , `wykonawca` varchar( 200 ) NOT NULL default '', `album` varchar( 200 ) NOT NULL default '', `gatunek` varchar( 50 ) NOT NULL default '', `okladka` varchar( 100 ) NOT NULL default '', `muzycy` text NOT NULL , `recenzja` text NOT NULL , `data` date NOT NULL default '0000-00-00', PRIMARY KEY ( `id` ) ) ENGINE = InnoDB DEFAULT AUTO_INCREMENT =1;"; Generalnie jestem w stanie to zrobić... ale nie wiem jak zabrać się za wyciąganie danych z plików o takiej strukturze. Pliki będą pobierane z freedb.org, tu jest oryginał: http://www.freedb.org/freedb/misc/8c08ec0a Proszę o podpowiedzi :-) Pozdrawiam Ten post edytował kleszczoscisk 20.03.2008, 15:42:59 -------------------- |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 568 Pomógł: 192 Dołączył: 7.03.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Te info masz tak w bazie zapisane? str_replace, preg_match, preg_replace
-------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 875 Pomógł: 122 Dołączył: 2.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Wczytujesz plik do tablicy za pomocą file" title="Zobacz w manualu PHP" target="_manual i potem za pomocą pętli foreach jedziesz po tablicy explodując każdą linię po znaku równości po czym zapisujesz te dane do tablicy... potem kwestia wyświetlenia danych z tej tablicy jest już chyba łatwa...
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 164 Pomógł: 3 Dołączył: 13.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za odpowiedzi
Potreb: tak, dane w takiej postaci udostępnia freedb Nowotny: tak właśnie próbuję, tylko jak wyświetlić z tej tablicy tylko tytuły ? Tak zrobiłem, pewnie cienko... ale nie umiem inaczej: Kod <?php //pobieram identyfikator freedb $dysk = $_GET['dysk']; //pobieram dane z pliku wg identyfikatora $dane = file_get_contents('pliki/'.$dysk.'.txt'); //wywalam niepotrzebne dane $dane = preg_match('/(DISCID.+)EXTT0/si', $dane, $tresc ); $dane2 = $tresc[0]; //zamieniam ciągi znaków $oryginalne = array("#", "TTITLE", "=", "DISCID", "DTITLE", "DYEAR", "EXTD", "EXTT0","DGENRE"); $zamienione = array("", "", " ", "id dysku: ", "wykonawca/tytuł: ", "rok:", "", "", "gatunek: "); $nowedane = str_replace($oryginalne, $zamienione, $dane2); //łamie konce linii echo nl2br($nowedane); ?> Jakieś wskazówki? Idealnie byłoby gdyby np. wartość "gatunek" była linkiem wyszukującym inne płyty z tego samego gatunku (itp), ale to zbyt trudne jak na stan mojej wiedzy :-| -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 31.07.2025 - 15:49 |