Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] wyrażenia regularne
-alaman-
post
Post #1





Goście







Witam,

mam taki problemik....

otóż mam taki ciąg znaków ( przykład )

  1. <?php
  2. <a href="/files/(1)" title="żółwik"><strong class="żółw">(2)</strong><br>(3)</a>
  3. ?>


i teraz chciałbym za pomocą ereg(i) wyciągnąć dane z (1), (2), (3)....
próbowałem na różne sposoby, lecz nie mogę ułożyć prawidłowego wyrażenia ... ;-/

czy mógłby ktoś pomóc ? naprowadzić ?

pozdrawiam
Go to the top of the page
+Quote Post
kamilkosinski
post
Post #2





Grupa: Zarejestrowani
Postów: 28
Pomógł: 3
Dołączył: 17.10.2007
Skąd: Warszawa

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


nie wiem na ile dane (html) mogą się zmieniać , więc tylko jako przykład:
  1. <?php
  2. ereg( '<a href="/files/(.*)" title=".*"><strong class=".*">(.*)</strong><br>(.*)</a>', $string, $regs );
  3. ?>
Go to the top of the page
+Quote Post
bełdzio
post
Post #3





Grupa: Zarejestrowani
Postów: 690
Pomógł: 81
Dołączył: 6.04.2005
Skąd: Szczecin

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


1. korzystaj z preg_* zamiast z eregi
2. <a href="/files/(.*?)" title="...wik"><strong class="...w">(.*?)</strong><br>(.*?)</a> - ewentualnie możesz wstawić żółwiki swoje smile.gif kropki dałem profilaktycznie jakby byłły jakieś trzaski z kodowaniem smile.gif


--------------------
Go to the top of the page
+Quote Post
-alaman-
post
Post #4





Goście







thx smile.gif

niby wszystko ok...

pod regs[0] mam caly ciag....
pod regs[1] jest (1)
pod regs[2] jest (2)
a pod regs[3] jest (3)+wszystko co jest za (3) ;/ czemu tak ?

da sie to jakoś ograniczyć ?

pozdrawiam
Go to the top of the page
+Quote Post
bełdzio
post
Post #5





Grupa: Zarejestrowani
Postów: 690
Pomógł: 81
Dołączył: 6.04.2005
Skąd: Szczecin

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


z którego regexpa korzytasz?


--------------------
Go to the top of the page
+Quote Post
-alaman-
post
Post #6





Goście







  1. <?php
  2. ereg( '<a href="/files/(.*)" title=".*"><strong class=".*">(.*)</strong><br>(.*)</a>', $string, $regs );
  3. ?>
Go to the top of the page
+Quote Post
bełdzio
post
Post #7





Grupa: Zarejestrowani
Postów: 690
Pomógł: 81
Dołączył: 6.04.2005
Skąd: Szczecin

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


to spr to moje


--------------------
Go to the top of the page
+Quote Post
kamilkosinski
post
Post #8





Grupa: Zarejestrowani
Postów: 28
Pomógł: 3
Dołączył: 17.10.2007
Skąd: Warszawa

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


Oba wyrażenia, dla podanych przez Ciebie przykładowych danych działają poprawnie.
  1. <?php
  2. $string = '<a href="/files/(1)" title="żółwik"><strong class="żółw">(2)</strong><br>(3)</a>';
  3. ereg( '<a href="/files/(.*)" title=".*"><strong class=".*">(.*)</strong><br>(.*)</a>', $string, $regs );
  4. print_r( $regs );
  5. ?>

Kod
Array
(
     [0] => <a href="/files/(1)" title="żółwik"><strong class="żółw">(2)</strong>
(3)</a>
     [1] => (1)
     [2] => (2)
     [3] => (3)
)
Go to the top of the page
+Quote Post
-alaman-
post
Post #9





Goście







hmn... no może źle zrobiłem podając tylko część

załóżmy, że string jest dużo dłuższy, a gdzieś w środku znajduje się to <a href [...]
Go to the top of the page
+Quote Post
kamilkosinski
post
Post #10





Grupa: Zarejestrowani
Postów: 28
Pomógł: 3
Dołączył: 17.10.2007
Skąd: Warszawa

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


np.
  1. <?php
  2. preg_match( '@<a href="/files/([^"]*)" title="[^"]*"><strong class="[^"]*">(.*)</strong>([^<]*)</a>@', $string, $regs );
  3. ?>

ale z wyrażeniami jest tak, że nikt, nie znając dokładnie wszystkich możliwych kombinacji danych wejściowych nie napisze Ci wyrażenia, więc sam się musisz pobawić

Ten post edytował kamilkosinski 24.03.2008, 21:09:19
Go to the top of the page
+Quote Post
-alaman-
post
Post #11





Goście







Wielkie dzięki kamilkosinski, działa winksmiley.jpg

Wielkie dzięki wszystkim za pomoc winksmiley.jpg

pozdrawiam.
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: 22.08.2025 - 11:35