Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] preg_replace
lopez86
post
Post #1





Grupa: Zarejestrowani
Postów: 187
Pomógł: 0
Dołączył: 24.12.2006

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


chcę aby preg_replace zamienił to co znajdzie na to co zwróci funkcja

  1. <?php
  2. $content=preg_replace("@<a href="[^#]([^"]*)"[^><]*>@si", tourl(1) ,$content);
  3. ?>


funkcja "tourl()" zamiast dostawać wartości trafione dostaje "\\1" , a mi chodzi o to że ma dostać to co pasuje następnie funkcja to przerabia i pregmatch zamienia na to co zwróciła funkcja.

Nie działa ...
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
lopez86
post
Post #2





Grupa: Zarejestrowani
Postów: 187
Pomógł: 0
Dołączył: 24.12.2006

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


Nie będę zaczynać nowego tematu bo mam kolejne pytanie co do wyrażeń regularnych (wiedzę poszerzyłem o modyfikatory) ale teraz mam inne pytanie.

Jak np. wyszukaj string zaczynający się od <table> i zakończ na </table>.

Bo co na przykład jeżeli mam kilka tabel i wtedy bardzo trudno jest znaleźć coś pomiędzy <table> a </table> aby nie wystąpiło dalej. Czyli czy istnieje jakiś znacznik czy coś podobnego co powie procesorowi że od <table> do pierwszego wystąpienia </table> i to będzie wzór.

i jeszcze jedno : jak w wyrażeniu napisać że pomiędzy np. <table> a </table> nie może wystąpić konkretny ciąb znaków a nie pojedyńczy czyli np. aby wybrać te które nie mają pomiędzy <table> a </table> znaku "*" to piszę wyrażenie
  1. <?php
  2. "@<table>[^*]*</table@si"
  3. ?>
ale co jeśli chcę aby pomiędzy <table> i </table> nie wystąpił ciąg znaków "<a href" wtedy to nie zadziała z tego co zauważyłem to bierze pod uwagę każdą literę/znak z podanego ciągu a nie jako całość
  1. <?php
  2. "@<table>[^<a href]*</table>@si
  3. ?>


To drugie pytanie jest ważniejsze bo bez tego pierwszego sobie jakoś poradzę ale bez tego drugiego nic nie zdziałam.

Ten post edytował lopez86 18.04.2007, 16:48:52
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: 6.10.2025 - 16:06