Jak zamienić zwykły link w klikalny na portalu?

Witam was serdecznie,

dzisiejszy wątek będzie poświęcony, jak zamienić wysłany link na klikalny?

Czyli ktoś wkleja zwykły link i wysyła swój post, tak samo jak na tym forum, i po wysłaniu link zamienia się w klikalny.

Czy wie ktoś jak to można zrobić?

Pozdrawiam

Może objąć w tagi {url}{/url}

Oczywiście nawias { zamienić na [ :wink:

Ale nie chce używać BBcode na swoim portalu, tylko żeby wysłany link zamienił się w klikalny :wink:

Może daj jakiś przykład albo screena jakby miało to wyglądać

Użytkownik pisze np. Komentarz i wkleja link, klika na Dodaj komentarz zostaje wysłany i zamiast tekstowego linku jest link klikalny, lub jeszcze lepiej link tekstowy zamienił się w link klikalny o treści [LINK]

jeszcze raz ;]

Pisze komentarz…

"Cześć u mnie spox a u ciebie? Widziałaś już to? http://google.pl/ fajna wyszukiwarka ^^"

A po wysłaniu wygląda to tak

“Cześć u mnie spox a u ciebie? Widziałaś już to? [LINK] fajna wyszukiwarka ^^”

:slight_smile:

Banał, kod powinien być taki:

[url=http://google.pl/]LINK[/url]

A wygląda to tak:LINKDodane 11.10.2010 (Pn) 0:07 – To oczywiście jest BBCode, ten sam efekt można uzyskać stosując znacznik html.:

LINK[/code]

Tylko że oczywiście dany portal musi obsługiwać znaczniki BBode lub html aby to się udało, inaczej nie da się tego zrobić.

scripter1 , niby banał, ale w pierwszym przypadku - użytkownik musi umieć kliknąć w ikonkę z bbcodem (różni ludzie się trafiają), ewentualnie sam wpisać bbcode (a autor wątku zaznaczył, że nie chce go używać). W drugim przypadku jest jeszcze gorzej, bo użytkownik musi znać HTML-owy zapis linku, a aplikacja bez odpowiedniego zabezpieczenia może być podatna na atak XSS.

Saver , można to zrobić sprawdzając tekst użytkownika wyrażeniem regularnym na obecność fraz rozpoczynających się na ‘www.’, czy ‘http://’ i pasujące fragmenty zamieniać na link, a szczegóły np. tu: zamiana adresów na linki.

Saver , sorry, źle zrozumiałem sens pytania.

Dokładnie o to mi chodziło :slight_smile:

Napisałem to tak według tego poradnika:

<?php

function tekst_na_link($text){

$wzorzec = array(	'/[a-zA-Z]{1,2}tp[s]?:\/\/[a-zA-Z0-9\-.]+\.[a-zA-Z]{2,4}(:[0-9]*)?\/[^\n\s]*/',

			'/([^\/]{2})(www\.[a-zA-Z0-9\-.]+\.[a-zA-Z]{2,4})/');

$zamiana = array(	'\0',

			'\1[LINK]');

$text = preg_replace($wzorzec, $zamiana, $text);

return $text;

}


$text = 'To jest bardzo fajna strona www.google.pl a widziałaś już tą? http://google.pl tez fajna...';

echo tekst_na_link($text);

?>[/code]

I link naprawdę zamienia się w link klikalny, ale tylko kiedy jest w formie, www.google,pl ale już nie zamienia kiedy jest w http://google.pl czy też http://www.google.pl

Saver skrypt który podałeś z zastosowaniem wyrażeń regularnych jest ok ale myślę że mój jest krótszy, bardziej czytelny i wydajniejszy :slight_smile:

Trzeba sobie ułatwiać życie :slight_smile: Do tego wyrażenia regularne nie są potrzebne.

A jak zrobić aby twój skrypt obsługiwał też http://www.go.pl ?

Dodane 11.10.2010 (Pn) 10:38

Dziękuje:)

Wziąłem twój skrypt i działa na stronie :wink:

Dziękuje także wam wszystkim :slight_smile:

Dzięki :wink: