webForumDet fria alternativet

Göra om domänadress till länk

PHP

1 svar · 226 visningar · startad av sailsoft

Medlem sedan juli 2001225 inlägg
Frågan#1

Jag använder idag en funktion för att göra en inmatad domänadress exempelvis https://www.webforum.nu till en klickbar länk, se koden nedan:

Problemet är om någon anger en väldigt lång domänadress, jag skulle vilja klippa ner den "synliga" adressen till max 20 tecken:

Länken
https://www.webforum.nu?blaha.php?s=12222222222222222222222222222

Vill visa
https://www.webforum.nu?blaha.php?

Hur gör jag?

//  First match things beginning with [url]http://[/url] (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 [url]www.[/url]
$NotAnchor 		= 	'(?<!"|href=|href\s=\s|href=\s|href\s=)';
$NotHTTP 		= 	'(?<!:\/\/)';
$Domain 		= 	'www(.[\w]+)';
$Subdir 		= 	'([\w\-\.,@?^=%&:\/~\+#]*[\w\-\@?^=%&\/~\+#])?';
$Expr 			= 	'/' . $NotAnchor . $NotHTTP . $Domain . $Subdir . '/i';

$Text			= 	preg_replace( $Expr, "<a href=\"http://$0\" title=\"http://$0\" target=\"_blank\">$0</a>", $Result );
Medlem sedan juni 20006 031 inlägg
#2

Du kan använda substr för att korta ner en sträng.

Annars så kan du ju göra som här på wF att lägga in tre punkter mitt i länken för att korta den.
http://schluter.no-ip.com/showsource/index.php?sida=korturl&visa=1

269 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)