Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]preg_replace a linki w tekście
sadistic_son
post
Post #1





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Cześć,
Wyrażenia regularne nie są moją najmocniejszą stroną. Chcę aby podmieniało mi linki na klikalne linki. Innymi słowy aby wszystko pomiędzy stringami 'www.' , 'http://' oraz 'https://' aż do pierwszej napotkanej spacji albo znaku nowej linii, albo kropki po której jest spacja czy nowa linia było wrzucane w a href.
Zaadoptowałem taki oto kod.

  1. $url = '@(http(s)?)?(://)?(([a-zA-Z])([-\w]+\.)+([^\s\.]+[^\s]*)+[^,.\s])@';
  2. $string = preg_replace($url, '<a href="http$2://$4" target="_blank" title="$0">$0</a>', $string);
  3. $row[3]=$string;*/

Wszystko pięknie oprócz tego że konwertuje każdy tekst przed kropką. Czyli strona.pl zostanie przekonwertowana. Fajnie, ale strona.strona też (IMG:style_emoticons/default/sad.gif)

Pomóżcie.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
sadistic_son
post
Post #2





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Ewidentnie ta jedna linijka wywala mi skrypt:
  1. $str = preg_replace([$regex,$regex2], ['$1<a href="$2">$2</a>$3', '<a$1href="http://$2'], $str);

Czy to możliwe, że ta funkcja działa inaczej (bądź nie działa w ogóle) w zależności od wersji php (oczywiście dla wersji po jej wprowadzeniu)? Mój hosting jest na PHP Version 5.2.17

Ten post edytował sadistic_son 25.02.2021, 11:05:54
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 28.12.2025 - 15:33