mam wyrażenie regularne, które prezentuje się następująco:
$content = preg_replace("#(^|[\n ])([\w]+?://\S[\w\#()$%&~/.\-;:=,?@\[\]+]*)#is", "\\1<a href=\"\\2\" rel=\"nofollow\" target=\"_blank\" class=\"postlink\">\\2</a>", $content);
w tej chwili działa na zasadzie, że jeśli w tekście jest coś co może być linkiem (np. www.forum.php.pl, www.wp.pl/czytaj_newsy,15512.html) to zamieni na anchor (aby link był klikalny).
jednak automatycznie tutaj dodaje parametr nofollow - co jest bardzo dobrym rozwiązaniem, ale po co ma dodawać
nofollow do linków z mojego serwisu? Więc zastanawiam się jak zrobić coś w stylu, że jeśli wydobyty link pasuje do linku mojego serwisu to nie dodawaj wówczas nofollow.
Tylko jak takie coś zrealizować? W tej chwili sunie mi się jedno rozwiązanie:
preg_match_all - i wydobywanie wszystkich tekstów, które mogą być linkiem i porównanie ich w pętli foreach
- tylko po co mam katować 30 wywołań pętli foreach (30 - ponieważ jest to funkcja filtrująca wiadomości i 30 postów wchodzi na stronę) jak prawdopodobnie da się to załatwić w modyfikacji powyższego wyrażenia regularnego - tylko jak?
Pomysły?