Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] wyrażenia regularne
Forum PHP.pl > Forum > Przedszkole
alaman
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
kamilkosinski
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. ?>
bełdzio
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
alaman
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
bełdzio
z którego regexpa korzytasz?
alaman
  1. <?php
  2. ereg( '<a href="/files/(.*)" title=".*"><strong class=".*">(.*)</strong><br>(.*)</a>', $string, $regs );
  3. ?>
bełdzio
to spr to moje
kamilkosinski
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)
)
alaman
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 [...]
kamilkosinski
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ć
alaman
Wielkie dzięki kamilkosinski, działa winksmiley.jpg

Wielkie dzięki wszystkim za pomoc winksmiley.jpg

pozdrawiam.
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.