![]() |
![]() ![]() |
![]() |
![]() ![]()
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
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 ... -------------------- c++ , javascript , PHP , SQL , MYSQL , CSS - wszystko czego potrzebuje prawdziwy mężczyzna LoL
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 112 Pomógł: 20 Dołączył: 10.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Po pierwsze, musisz dodać modifier e, aby skorzystać z możliwości wykonania funkcji od razu na znalezionych danych. Zamiast @si dajesz więc @esi.
Po drugie, błędnie zapisałeś odwołanie do funkcji. Poprawnie winno to być tak:
pozdr. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 187 Pomógł: 0 Dołączył: 24.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki - mam odrazu pytanko gdzie można poczytać oprócz książek na temat modyfikatorów bo tego naprawdę nie umie znaleźć nigdzie, jest dużo o wyrażeniach regularnych ale o modyfikatorach nic nie znalazłem konkretnego.
-------------------- c++ , javascript , PHP , SQL , MYSQL , CSS - wszystko czego potrzebuje prawdziwy mężczyzna LoL
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 112 Pomógł: 20 Dołączył: 10.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Najlepiej chyba w manualu zacząć - http://pl.php.net/manual/pl/reference.pcre...n.modifiers.php
A potem szukać w googlu na hasło PCRE Pattern Modifiers i rozszerzać wiedzę. Nie pamiętam, żebym czytał jakieś opracowanie dotyczące tylko i wyłącznie modyfikatorów. Poza tym, tak naprawdę nie mają aż takiej "mocy", żeby jakoś się o nich rozpisywać wielce ![]() pozdr. |
|
|
![]()
Post
#5
|
|
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 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ść
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 -------------------- c++ , javascript , PHP , SQL , MYSQL , CSS - wszystko czego potrzebuje prawdziwy mężczyzna LoL
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
W nawiasach kwadratowych podaje się klasę znaków do wyszukiwania, więc wyrażenie [^<a href] nie oznacza:
- dopasuj wszystkie znaki aż do napotkania "<a href" tylko: - dopasuj wszystkie znaki, które nie są: "<", "a", " ", "h", "r", "e", "f" A co do pierwszego problemu, to wyrażenia regularne są domyślnie 'zachłanne', czyli będą się starały dopasować jak najwięcej znaków tylko się da, ale żeby pasowało do wzorca. Używając znaku pytajnika możemy zamienić wyrażenie na 'niezachłanne', czyli starające się dopasować jak najmniej znaków tylko się da, ale żeby pasowało do wzorca. Tak więc wyrażenie: <table>(.*)</table> dopasuje: Cytat asfsa <table> asdasd</table> dsfds <table> saf saf </table> safsa <table> sad sa asfdsad </table> asdsad natomiast wyrażenie: <table>(.*?)</table> dopasuje: Cytat asfsa
<table> asdasd</table> dsfds <table> saf saf </table> safsa <table> sad sa asfdsad </table> asdsad -------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 187 Pomógł: 0 Dołączył: 24.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za pomoc szczególnie dla Kicok bo tego nie umiałem znaleźć nigdzie i pewnie nigdy bym na to nie wpadł ...
![]() -------------------- c++ , javascript , PHP , SQL , MYSQL , CSS - wszystko czego potrzebuje prawdziwy mężczyzna LoL
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 04:52 |