Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Data w wyrażeniach regularnych
3miel
post 23.01.2008, 17:08:56
Post #1





Grupa: Zarejestrowani
Postów: 203
Pomógł: 0
Dołączył: 10.06.2004
Skąd: Gliwice

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


Witam,

chce poprzez wyrazenia regularne usunac date z tekstu.

zrobilem cos takeigo:

  1. <? 
  2. $zrodlo = preg_replace('#[0-9]{0,2}-[0-9]{0,2}-[0-9]{0,2}#', '', $zrodlo); 
  3. ?>



i nic się nie dzieje.

Gdzie jest błąd?


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
Indeo
post 23.01.2008, 17:38:26
Post #2





Grupa: Zarejestrowani
Postów: 295
Pomógł: 7
Dołączył: 26.03.2004
Skąd: Opole

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


Może nie ma dat? Może mają inny format? A może
$zrodlo = preg_replace('/[0-9]{0,2}-[0-9]{0,2}-[0-9]{0,2}/', '', $zrodlo);
bo pierwszy raz widzę # w patternie


--------------------
Go to the top of the page
+Quote Post
webdice
post 23.01.2008, 17:50:55
Post #3


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Pan pokaże ten tekst.
Go to the top of the page
+Quote Post
3miel
post 24.01.2008, 10:45:30
Post #4





Grupa: Zarejestrowani
Postów: 203
Pomógł: 0
Dołączył: 10.06.2004
Skąd: Gliwice

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


Już wszytko gra, poprostu rok był 4-cyfrowy;) rozpedzilem sie z kopiowaniem:)

Eh i znow problem... nie chce zaczynać nowego topicu więc piszę tutaj.

Jak za pomocą wyrażeń regularnych wyciągnąć pewien fragment z większego tekstu?

Np. date z pliku, w którym są daty i opisy?

Wiem jak znaleźć, ale EREG zwraca tylko TRUE lub FALSE. A jak zrobić, żeby wyświetlało to co znalazło?


--------------------
Go to the top of the page
+Quote Post
Louner
post 24.01.2008, 11:41:55
Post #5





Grupa: Zarejestrowani
Postów: 99
Pomógł: 5
Dołączył: 20.06.2005
Skąd: Bielsk Podlaski

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


  1. <?php
  2. $daty='07-12-05 bla bla bla 04-06-11 tralalala 94-12-12 abrakadabra';
  3. preg_match_all('#([0-9]{0,2})-([0-9]{0,2})-([0-9]{0,2})#', $daty, $trafy, PREG_SET_ORDER); 
  4. print_r($trafy);
  5. ?>


da w efekcie:

  1. <?php
  2. (
  3. [0] => Array
  4. (
  5. [0] => 07-12-05
  6. [1] => 07
  7. [2] => 12
  8. [3] => 05
  9. )
  10.  
  11. [1] => Array
  12. (
  13. [0] => 04-06-11
  14. [1] => 04
  15. [2] => 06
  16. [3] => 11
  17. )
  18.  
  19. [2] => Array
  20. (
  21. [0] => 94-12-12
  22. [1] => 94
  23. [2] => 12
  24. [3] => 12
  25. )
  26.  
  27. )
  28. ?>



To chyba wystarczy. smile.gif Fragmenty, które mają się znaleźć w tablicy 'trafy' wystarczy ująć w nawiasy.

Ten post edytował Louner 24.01.2008, 11:43:37
Go to the top of the page
+Quote Post
3miel
post 24.01.2008, 14:33:25
Post #6





Grupa: Zarejestrowani
Postów: 203
Pomógł: 0
Dołączył: 10.06.2004
Skąd: Gliwice

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


O dziekuje, ale sam doszedlem wcześniej i zrobilem na preg_replace. I teraz pytanko, co jest lepsze/szybsze? bo mam dosc troche rekordow do przejrzenia i czas ma ogromne znaczenie.


--------------------
Go to the top of the page
+Quote Post
webdice
post 24.01.2008, 14:38:03
Post #7


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Podobno preg_* jest szybsze, ale nie pamiętam gdzie to czytałem.
Go to the top of the page
+Quote Post
3miel
post 24.01.2008, 16:45:08
Post #8





Grupa: Zarejestrowani
Postów: 203
Pomógł: 0
Dołączył: 10.06.2004
Skąd: Gliwice

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


AHa to dzieki wielkie nie bede musial nic zmieniac;) a smiga dobrze jak na aplikacje webowa;) I tak korzystam z niej na kompie tylko wiec nie będzie zawiasów


--------------------
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 Wersja Lo-Fi Aktualny czas: 31.07.2025 - 09:50