| FAQ |
| Kalender |
|
|
#1 | ||
|
|||
|
Medlem
|
Någon skriver i ett forum in en länk (med http:// eller www så man kan identifiera den som en länk). Jag vill göra denna klickbar, alltså lägga till länk.
Hur gör jag den omvandlingen smartast i php? Användaren tillåts själv inte att använda html i sin text. EDIT: borde väl legat under serversidans.. |
||
|
|
Svara med citat
|
|
|
#2 | |||
|
||||
|
Har WN som tidsfördriv
|
Kod:
<?php
function email2link($string)
{
return preg_replace("!(^|[ \n\r\t])([a-z_-][a-z0-9\._-]*@[a-z0-9_-]+(\.[a-z0-9_-]+)+)!i","\\1<a href=\"mailto:\\2\">\\2</a>",$string);
}
function url2link ( $Text )
{
$Text = email2link($Text);
// First match things beginning with http:// (or other protocols)
$NotAnchor = '(?<!"|href=|href\s=\s|href=\s|href\s=)';
$Protocol = '(http|ftp|https):\/\/';
$Domain = '[\w]+(.[\w]+)';
$Subdir = '([\w\-\.,@?^=%&:\/~\+#]*[\w\-\@?^=%&\/~\+#])?';
$Expr = '/' . $NotAnchor . $Protocol . $Domain . $Subdir . '/i';
$Result = preg_replace( $Expr, "<a href=\"$0\" title=\"$0\" target=\"_blank\">$0</a>", $Text );
// Now match things beginning with www.
$NotAnchor = '(?<!"|href=|href\s=\s|href=\s|href\s=)';
$NotHTTP = '(?<!:\/\/)';
$Domain = 'www(.[\w]+)';
$Subdir = '([\w\-\.,@?^=%&:\/~\+#]*[\w\-\@?^=%&\/~\+#])?';
$Expr = '/' . $NotAnchor . $NotHTTP . $Domain . $Subdir . '/i';
return preg_replace( $Expr, "<a href=\"http://$0\" title=\"http://$0\" target=\"_blank\">$0</a>", $Result );
}
echo url2link("Det här är en adress@domän.com, och det här en länk://till.nagonting.com/hej.html?id=12");
?>
|
|||
|
|
Svara med citat
|
|
|
#3 | |||
|
||||
|
Mycket flitig postare
|
Jag skulle använda preg_replace
http://www.php.net/Preg_replace Nu har jag inte testat detta men prova det här: $text = preg_replace("/(http:\/\/[^\s]*)/","<a href=\"\\1\">\\1</a>",$text); Hoppas det hjälper Edit: Om du vill ha för bara www också får du göra om lite, kanske såhär(obs har inte testat) $text = preg_replace("/(http:\/\/www|http:\/\/|www)([^\s]*)/","<a href=\"http://www\\2\">\\1\\2</a>",$text); |
|||
|
|
Svara med citat
|
|
|
#4 | ||
|
|||
|
Medlem
|
Tack koala och jimmie! Detta kommer hjälpa mig mycket.
|
||
|
|
Svara med citat
|
|
|
#5 | |||
|
||||
|
Mycket flitig postare
|
Finns även lite lösningar på:
http://regexlib.com/DisplayPatterns.aspx?c...=1&categoryId=2 |
|||
|
|
Svara med citat
|
| Svara |
|
|