Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Automatyczna zamiana http:// na linki
bmati666
post
Post #1





Grupa: Zarejestrowani
Postów: 57
Pomógł: 1
Dołączył: 12.02.2016

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


Witam,
Znalazłem taki skrypt:
  1. <?php
  2. function createUrl($text){
  3. $text=preg_replace('|(?<!href=")(https?://[A-Za-z0-9+\-=._/*(),@\'$:;&!?]+)|',
  4. '<a href="http://$1">$1</a>',
  5. $text);
  6. return $text;
  7. }
  8.  
  9. $text = 'http://funckej.net to bardzo dobra strona a <a href="http://www.onet.pl" target="_blank">http://www.onet.pl</a> też dobre jest';
  10.  
  11. echo createUrl($text);
  12. ?>

Problem w tym, że link po kliknięciu nie przekierowuje do http://... tylko http// (bez dwukropka).
Wie ktoś jak to naprawić i co zrobić żeby samo www.strona.pl (bez http://) też zamieniało w link?

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
bmati666
post
Post #2





Grupa: Zarejestrowani
Postów: 57
Pomógł: 1
Dołączył: 12.02.2016

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


Dzięki, a jak zrobić żeby samo www bez http też zmieniało w link?

Wykombinowałem coś takiego:
  1. function createUrl($text){
  2.  
  3. $reg_exUrl = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";
  4.  
  5. $reg_exUrl2 = "/(www)\.[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";
  6.  
  7. if(preg_match($reg_exUrl, $text, $url)) {
  8. $text=preg_replace($reg_exUrl, '<a href="'.$url[0].'" rel="nofollow">'.$url[0].'</a>', $text);
  9. }
  10. else
  11. {
  12. if(preg_match($reg_exUrl2, $text, $url2)) {
  13. $text=preg_replace($reg_exUrl2, '<a href="http://'.$url2[0].'" rel="nofollow">'.$url2[0].'</a>', $text);
  14. }
  15. }
  16.  
  17. return $text;
  18. }

I wszystko działa, tylko jak w "$text" znajdą się 3 różne opcje np. www.google.pl http://google.pl http://www.google.pl to wtedy wyswietla
dwa razy http://google.pl z linkiem bez www i raz www.google.pl bez linku
Go to the top of the page
+Quote Post

Posty w temacie


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: 11.10.2025 - 09:50