Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [regexp] Wyszukiwanie, ale nie w linkach, znów nie wiem jak
Blackhole
post
Post #1





Grupa: Zarejestrowani
Postów: 283
Pomógł: 1
Dołączył: 15.11.2004
Skąd: Mikołów

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


Hej!
Mam w tekście działające linki, tzn. nie same teksty linków, ale łącza. Chcę podświetlać znalezione przez wyszukiwarkę słowa/frazy, lecz z pominięciem fragmentów, które są adresem, do którego linki prowadzą.
Nie mam bladego pojęcia, jak to zrobić. Czy jest w wyr. regularnych coś, co pozwala wskazać, że danego tekstu nie ma w wybranym miejcu być? (to chyba byłoby mi pomocne)

Próbuję jakoś, ale jeszcze nie działa. Mam:
  1. $slowo = "findME";
  2. $fnd = "#(?<!(href=\"))(.*)(".$slowo.")(.*)(?!\")#Ui"; // pattern do znajdywania
  3. $rpl = "$1$2<span class=\"hl_found\">$3</span>$4$5"; // zamiana na to
Jak widać, korzystam z lookbehind'ów ( http://www.regular-expressions.info/lookaround.html ), bo wydaje mi się, że to ma szanse tu zadziałać. Widać jednak, że coś mam ciągle nie tak. Pomóźcie, proszę...

Ten post edytował Blackhole 15.06.2010, 19:01:38


--------------------
Ściskam prawicę...
Jacek

http://doscniewoli.pl/ - wszyscy jesteśmy niewolnikami bankierów!
http://jezusimarlena.ovh.org/
YouTube - Egzorcyzmy Anneliese Michel
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
ayeo
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

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


Witam!

Co takiego spróbuj. I nazywaj zmienne normalnie to nie będziesz musiał takich durnych komentarzy robić winksmiley.jpg

  1. $wordToReplace = "findME";
  2. $pattern = '#(<a href=".*?">.+?)('.$wordToReplace.')(.+?</a>)#';
  3. $replacement = '$1 <span class="tralalala">$2</span> $3';
  4. $subject = 'Jakiś tekst, nie wiem co pisać <a href="">Tutaj będzie '.$wordToReplace.' i tu jeszcze coś</a> Borsuki lubią latać po lesie';
  5. var_dump( preg_replace( $pattern, $replacement, $subject ) );


Pozdrawiam!


--------------------
Go to the top of the page
+Quote Post
Blackhole
post
Post #3





Grupa: Zarejestrowani
Postów: 283
Pomógł: 1
Dołączył: 15.11.2004
Skąd: Mikołów

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


ayeo, działa, ale tylko dla linków. Co trzeba by poprawić, by nie omijało również słów, które są poza linkami?

Poradziłem sobie tak, że najpierw wszystkie wyszukuję, a potem usuwam te z href="".


--------------------
Ściskam prawicę...
Jacek

http://doscniewoli.pl/ - wszyscy jesteśmy niewolnikami bankierów!
http://jezusimarlena.ovh.org/
YouTube - Egzorcyzmy Anneliese Michel
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: 19.08.2025 - 07:28