![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 350 Pomógł: 31 Dołączył: 23.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
Hej,
mam wyrażenie regularne, które prezentuje się następująco:
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? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 305 Pomógł: 29 Dołączył: 5.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
dopisz do wyrażenia jak wygląda link z twojej strony i usuń nofollow a drugie wyrażenie zostaw takie jak jest i pro problemie.
Zależnie od tego co będzie to ci wstawi. Mógł byś też skorzystać z preg_replace_callback i w funkcji sprawdzać iczy jest to twój serwis czy nie. i wtedy odpowiednia akcja. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 233 Pomógł: 87 Dołączył: 6.03.2009 Ostrzeżenie: (40%) ![]() ![]() |
Co jeśli tekst jest w komentarzu?
Co jeśli tekst jest wewnątrz elementu <textarea>? Co jeśli tekst jest wewnątrz elementu <script>? Co jeśli tekst jest wewnątrz elementu anchor? Co jeśli tekst jest w atrybucie (np. value)? Musisz sparsować HTML, poszukać elementów textNode i tylko w nich szukać domen... http://stackoverflow.com/questions/3577641...s-html-with-php Ten post edytował wNogachSpisz 12.08.2012, 11:31:22 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 17.06.2025 - 00:21 |