Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Wyświetlanie rekordów tablicy spełniających okraślone założenie
tdk2005
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 30.08.2008
Skąd: Bolszewo

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


Witam,

stworzyłem tablicę $plik poprzez wgranie pliku TONE.LOG funkcją file(), teraz chciałbym:
1. Z każdego rekordu usunąć ciąg znaków "Duration : 0 Min 0 Sec" (wartości liczbowe się zmieniają w zależności od długości nagrania).
2. Wyświetlić w oddzielnej tabeli rekordy które by spełniały określone założenie (zawierały by określony ciąg znaków na końcu np. "595605"

Kod
<?PHP

$plik = file('../TONE.LOG'); //wywoluje plik log do tablicy plik

$plik = array_reverse($plik); //odwraca wyswietlanie. Najnowsze wpisy na gorze a nie na dole.

     echo '<pre>'; //powoduje prezentacje pliku w formie linii a nie ciagu.
    
print_r($plik); //wyswietla cala surową tablice na stronie.  
?>


TONE.LOG
Cytat
=====================================================
WinTone 2.02 - Log File
Started 2010-02-08 15:41:03
=====================================================
2010-02-08 15:41:18 Duration : 0 Min 3 Sec Tones : 595905
2010-02-08 15:41:23 Duration : 0 Min 1 Sec Tones : 595900
2010-02-08 15:41:26 Duration : 0 Min 1 Sec Tones : 522506
2010-02-08 15:41:29 Duration : 0 Min 1 Sec Tones : 522506
-----------------------------------------------------
- END of Log File - Terminated 02-08-10 03:41:31 pm
-----------------------------------------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
tdk2005
post
Post #2





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 30.08.2008
Skąd: Bolszewo

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


Dzięki za podpowiedź z pierwszym założeniem i "preg_replace" poszło mi całkiem gładko ale (zawsze jest jakieś ale (IMG:style_emoticons/default/haha.gif) ) "preg_match_all" to dla mnie jakaś czarna magia jedyną sytuacją kiedy php nie wywala jakiegoś błędu w kodzie jest ta zawarta poniżej a i tak funkcja wyświetla albo tylko słowo "Array" albo przy "print_r()" wyświetla puste tablice.

I takie pytanie czy "preg_match_all" potrafi rozpoznać kilka różnych wzorców bo ja w sumie mam do wprowadzenie i rozpoznania kilkadziesiąt różnych statusów (kilkanaście wozów każdy po 10 statusów).

Pewnie będzie to jakaś głupota ale to mój pierwszy projekt w php i nie zawsze rozumiem o czym do mnie piszą w manualu.

  1. <?PHP
  2.  
  3. $plik = file('../TONE.LOG'); //wywoluje plik log do tablicy plik
  4.  
  5. $plik = array_reverse($plik); //odwraca wyswietlanie. Najnowsze wpisy na gorze a nie na dole.
  6.  
  7. echo '<pre>'; //powoduje prezentacje pliku w formie linii a nie ciagu. Tworzy tablice?
  8.  
  9. for( $x = 0 ; $x < 200; $x++ ) { // Pętla wykona się 200 razy (0...200)
  10.  
  11. $string = $plik[$x]; //tabela podana do zmian
  12.  
  13. $patterns[0] = '/ Duration : (.) Min (.) Sec /'; //wzorzec
  14. $patterns[1] = '/ Tones :/';
  15. //Edycja tabeli
  16.  
  17. $replacements[0] = '';//efekt porzadany
  18. $replacements[1] = '<strong>Status :</strong>';
  19. //Edycja tabeli
  20.  
  21. preg_replace($patterns, $replacements, $string);//tutaj wszystko ok
  22.  
  23. $subject = $plik[$x];
  24.  
  25. $pattern = '/^666666/';
  26.  
  27. preg_match_all($pattern, $subject, $matches);
  28. echo $matches;
  29. }
  30. ?>


Ten post edytował tdk2005 9.02.2010, 23:08:26
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 11.10.2025 - 04:37