Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wyciągnie informacji z tekstu.
Forum PHP.pl > Forum > Przedszkole
Klycior
Cześć,

Na serwerze zapisują mi się dema z gry.
Każde demu zapisuję się przykładowo tak: BF2-1104240011-de_dust2.dem.gz

Teraz chciałbym zrobić aby użytkownicy mieli wgląd do dem oraz możliwość ich pobrania.
Jakiej funkcji użyć aby rozdzielić poszczególną nazwę dema w taki sposób:

Serwer: BF2
Data: 24.04.2011
Godzina: 00:11
Mapa: de_dust2

<nazwa_dema>-<YYMMDDhhmm>-<map>.dem

Z góry dziękuję za pomoc.
blooregard
http://pl2.php.net/explode

Rozbijasz to, co masz podane po '-' i już masz osobno serwer, datę z godziną i mapę.
Nad resztą popracuj za pomocą f-cji do stringów.
Klycior
Dzięki to już jeden problem z głowy.
Teraz pytanie jak z katalogu dema pobrać listę dem ?
artur219
podzielenie pełnej nazwy to explode a później wyciągnięcie daty z time to date i odpowiedni format

  1. $file_name = 'BF2-1104240011-de_dust2.dem.gz';
  2. $file_name = explode( '.', $file_name );
  3. $explode = explode( '-', $file_name[0] );
  4. $data1 = date( 'Y-m-d', $explode[1] );
  5. $data2 = date( 'H:i:s', $explode[1] );
  6. Serwer: {$explode[0]}
  7. Data: {$data1}
  8. Godzina: {$data2}
  9. Mapa: {$explode[2]}
  10. ";


co do listy dem to http://php.net/manual/pl/function.opendir.php
Klycior
artur219, skąd Ty bierzesz te sekundy i rok 2004 ?
Ja sobie poradziłem, fakt że jest skomplikowane lecz dla mnie czytelne i to dla mnie najważniejsze:
  1. // Serwer
  2. $zm = 'BF2-1104240011-de_dust2.dem.gz';
  3. $tab = explode('-', $zm);
  4. echo "Serwer: ".$tab[0]."<br>";
  5.  
  6. // Mapa
  7. $zm2 = ".$tab[2].";
  8. $tab2 = explode('.', $zm2);
  9. echo "Mapa: ".$tab2[1]."<br>";
  10.  
  11. //Godzina
  12. $tekst = "$tab[1]";
  13. $t = substr("$tekst", -2);
  14. $h = substr("$tekst", -4, 2);
  15. echo "Godzina: ".$h.":".$t."<br>";
  16.  
  17.  
  18. //Data
  19. $tekst = "$tab[1]";
  20. $dz = substr("$tekst", -6, 2);
  21. $mi = substr("$tekst", -8, 2);
  22. $rok = substr("$tekst", -10, 2);
  23. echo "Data: ".$dz.".".$mi.".20".$rok."";

artur219
Hm dlaczego tak skomplikowanie ?


  1. // ta zmienna zwróci Ci time np. 9999999999
  2. $explode[1]
  3.  
  4. // w funkcji date podajesz najpierw format zwróconej daty Y-m-d i kolejny paramert to $explode[1]
  5. $data1 = date( 'Y-m-d', $explode[1] );
  6. // tu to samo tylko inny format zwróconej daty
  7. $data2 = date( 'H:i:s', $explode[1] );
  8.  


co do błędnego roku najwidoczniej taki był podczas zapisu pliku smile.gif ja używam tego sposobu w wielu przypadkach i tak samo tej funkcji date i zawsze pokazuje poprawnie smile.gif

edit

dopiero teraz widzę że to nie jest time tylko data i godzina z usuniętymi dzielnikami więc masz wszystko dobrze zrobione smile.gif
Klycior
No i wszystko jasne.
Temat do zamknięcia.
Dzięki za pomoc.
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.