• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!
  • 2026 staff recruitment is open! Check it out and consider applying!

[PHP] Zamiana linków (plain text) na aktywne

Joined
Jun 29, 2010
Messages
151
Reaction score
7
Wcześniejszy temat: http://otland.net/f28/php-str_replace-132409/

Mam jeszcze pytanie, czy jest jakiś lepszy sposób na zamianę linków na klikalne? Ponieważ poniższy sposób gubi się, gdy w adresie jest spacja...

Code:
preg_replace("/(http|https|ftp)(:\/\/[[:alnum:](.*?)%\&_=?\/\.-]+)/", "<a href=\"\\1\\2\" target=\"_blank\">\\1\\2</a>", nl2br($rev['comment']))
Znalazłem coś takiego:
http://www.totallyphp.co.uk/code/convert_l..._hyperlinks.htm
http://snipplr.com/view/12673/linkify--con...-text-to-links/

Ale jak to tutaj wkomponować?:
Code:
<td class=\"grey\">".($search ? $main->highlight(preg_replace("/(http|https|ftp)(:\/\/[[:alnum:](.*?)%\&_=?\/\.-]+)/", "<a href=\"\\1\\2\" target=\"_blank\">\\1\\2</a>", nl2br($rev['comment'])), $searchstr) : preg_replace("/(http|https|ftp)(:\/\/[[:alnum:](.*?)%\&_=?\/\.-]+)/", "<a href=\"\\1\\2\" target=\"_blank\">\\1\\2</a>", nl2br($rev['comment'])))."</td>
 
Last edited:
Używaj w kodzie PHP ' ', a w HTML'u " " ;f

##
Zrób sobie funkcjię:
PHP:
makeLinksActive($text)
{
return preg_replace("/(http|https|ftp)(:\/\/[[:alnum:](.*?)%\&_=?\/\.-]+)/", "<a href=\"\\1\\2\" target=\"_blank\">\\1\\2</a>", nl2br($text);
}

I potem makeLinksActive("asdasdasd Google asdasd asdas dasdasdasd asdasdasd asdasd");
 
Już mniejsza o to, ale ja się pytam jak ułożyć dobrze ten replace aby nie było takiej sytuacji jak teraz mam, że np. jak jest spacja w adresie to już drugiej części linku nie czyta...
 
Wcisnij spacje do regexpa? :p

Nie wiem dokładnie jak, mógłbyś wcisnąć i podać cały kod? :D
Nie będzie takiej sytuacji, że spację za linkiem też uzna za fragment linku i za tym pociągnie cały tekst, który jest dalej uznając to jako link ze spacjami?
 
%20aaaaa%20 w php w Chrome pokazuje %20aaaaa%20
Spacja w HTML to &nbsp;
%20 działa tylko w URL
Jak już ktoś wspominał, w URL nie ma spacji. Wpisz sobie w pasku adresu jakiś link i dodaj coś po spacji. Samo się zamieni na %20 ;)
 
Cytując czyjegoś posta zawierającego spację zapisaną w kodzie htmlu, sam zamienia się on na spację, a nbsp nie - tak jest tylko w tym nowym edytorze na otlandzie? (swoją drogą, zajebisty)
 
Back
Top