Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Problem z wyrarzeniem regularnym
aki00
post
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 6.06.2006
Skąd: Z tamtąd xD

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


Chciałem z pomiędzy dwóch komentarzy w kodzie html wyciągnąć tekst za pomocą php i napisałem taki kod:

  1. <?php
  2. $plik = fopen("test.html", "r");
  3.  
  4. $dane = fread($plik, filesize('test.html'));
  5. preg_match_all("/<!-- edi:html -->(.*)<!-- edi:end -->/", $dane, $tekst);
  6. fclose($plik);
  7. ?>


niestety zmienna $tekst zawiera tylko puste tablice. nie wiem co tutaj mam źle. pomoże ktoś?
Go to the top of the page
+Quote Post
rybik
post
Post #2





Grupa: Zarejestrowani
Postów: 99
Pomógł: 15
Dołączył: 29.07.2006

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


ściągnij program regex coach, pomoże w tym wyrażeniu i w kolejnych smile.gif
Go to the top of the page
+Quote Post
aki00
post
Post #3





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 6.06.2006
Skąd: Z tamtąd xD

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


cos nie moge poradzic sobie z tym programem
Go to the top of the page
+Quote Post
JoShiMa
post
Post #4





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


Może spróbuj

  1. <?php
  2. preg_match_all("/<!-- ed:html -->(.*?)<!-- ed:end -->/", $dane, $tekst);
  3. ?>


A jak zadziała to dowiedz sie jaka jest różnica między maksymalistycznymi i minimalistycznymi kwantyfikatorami.


--------------------
Go to the top of the page
+Quote Post
aki00
post
Post #5





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 6.06.2006
Skąd: Z tamtąd xD

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


tak juz probowalem i tez nie dziala
Go to the top of the page
+Quote Post
JoShiMa
post
Post #6





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


A może slesze przed nawiasami kwadratowymi?


--------------------
Go to the top of the page
+Quote Post
aki00
post
Post #7





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 6.06.2006
Skąd: Z tamtąd xD

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


Jakimi nawiasami kwadratowymi?
Go to the top of the page
+Quote Post
JoShiMa
post
Post #8





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


Takimi? < >

Chodziło mi oczywiście o trójkątne. laugh.gif

Ten post edytował JoShiMa 15.09.2008, 15:25:07


--------------------
Go to the top of the page
+Quote Post
aki00
post
Post #9





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 6.06.2006
Skąd: Z tamtąd xD

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


niestety nadal nic

a tak przy okazji to sa znaki mniejszoasci i wiekszosci winksmiley.jpg
Go to the top of the page
+Quote Post
JoShiMa
post
Post #10





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


W tym zastosowaniu są to trójkątne nawiasy.

To może pokaż tek tekst, który przeczesujesz?

Ten post edytował JoShiMa 15.09.2008, 15:35:31


--------------------
Go to the top of the page
+Quote Post
aki00
post
Post #11





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 6.06.2006
Skąd: Z tamtąd xD

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


  1. <p>
  2. <!-- edit:html -->
  3. To jest tekst ;D
  4. <!-- edit:end -->
  5. </p>


Ten post edytował aki00 15.09.2008, 15:39:41
Go to the top of the page
+Quote Post
Exek
post
Post #12





Grupa: Zarejestrowani
Postów: 120
Pomógł: 10
Dołączył: 16.08.2007

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


Kod
preg_match_all("/<!-- ed:html -->(.*?)<!-- ed:end -->/s", $dane, $tekst);


Tutaj podaję listę flag, jakby ktoś chciał:

Kod
   i   Case-insensitive matching.
   m   ^ and $ match next to embedded \n.
   s   Dot (.) matches newline.
   x   Ignore whitespace, and allow comments (#) in pattern.
   U   Inverts greediness of all quantifiers: * becomes lazy, and *?
       greedy.
   A   Force match to start at beginning of subject string.
   D   Force $ to match end of string instead of before the string-
       ending newline. Overridden by multiline mode.
   u   Treat regular expression and subject strings as strings of
       multibyte UTF-8 characters.



EDIT:
Zmieniłem flagę w kodzie, nie zauważyłem że aki00 napisał odpowiedź, a nie chciałem już nowego posta tworzyć.

Ten post edytował Exek 15.09.2008, 19:38:59
Go to the top of the page
+Quote Post
aki00
post
Post #13





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 6.06.2006
Skąd: Z tamtąd xD

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


niestety to również nie pomaga
Go to the top of the page
+Quote Post
Shili
post
Post #14





Grupa: Zarejestrowani
Postów: 1 085
Pomógł: 231
Dołączył: 12.05.2008

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


A powinno.
Podaj cały kod, który masz, który sprawdza wyrażenie regularne.

@edit
Ale to Joshima powinna dostać plusa, nie ja winksmiley.jpg

Ten post edytował Shili 15.09.2008, 22:52:34
Go to the top of the page
+Quote Post
aki00
post
Post #15





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 6.06.2006
Skąd: Z tamtąd xD

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


z flaga /s dziala bo wczesniej byla /m to mi nie dzialalo biggrin.gif
Go to the top of the page
+Quote Post
Exek
post
Post #16





Grupa: Zarejestrowani
Postów: 120
Pomógł: 10
Dołączył: 16.08.2007

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


Tak, tak, sorki za zamieszanie, ostatnio regexpa używałem w javie a tam flaga m robi takie cuda winksmiley.jpg

Pomyłka, w javie też s tongue.gif


Ten post edytował Exek 15.09.2008, 19:46:56
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 Aktualny czas: 21.08.2025 - 18:46