Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] preg_replace - wyszukanie linków w tekście
Forum PHP.pl > Forum > Przedszkole
tenloginjestzajety
Witam
Zamian linków w tekście, korzystam z tego kodu. Jednak domeny zawierające myślnik (-) nie działają.

  1. <?php
  2. $text = "Tekst zawierający linki httpdomenapl koniec tekstu. httpsdomenapl dalszy tekst.";
  3. $zmiana = preg_replace("&(.t+p.?:\/\/|w{3}\.)(w{3}\.)?([\w.-\/]+)[\n]?[/r]?& i", "<a href=\"http://$2$3\" target=\"_blank\">$2$3</a>", $text);
  4. echo $zmiana;
  5. ?>


Rozwiązanie:
  1. <?php
  2. $text = "Tekst zawierający linki <a href="http://adre-asd-s.pl/podstrona" target="_blank">http://adre-asd-s.pl/podstrona</a> koniec tekstu. <a href="https://allegro.pl/" target="_blank">https://allegro.pl/</a> dalszy tekst.";
  3. $wpis = preg_replace('@(https?://([-\w\.]+[-\w])+(:\d+)?(/([\w/_\.#-]*(\?\S+)?[^\.\s])?)?)@', '<a href="$1" target="_blank">$1</a>', $text);
  4. echo $wpis;
  5. ?>
kpt_lucek
Pierwszy link w google?
tenloginjestzajety
Mam mały problem z tą zamianą, ponieważ jeżeli ktoś doda do bazy tekst z linkiem z enterem ( korzystam z nl2br ) to link się psuje, zawiera pierwszy znak "<br />" czyli "<". Próbowałem dodać spację przy dodawaniu, ale nie działa.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.