Ich hab den hier schonmal geposteten URL Parser
(versucht) um die option zu erweitern, das er die Links auch kürzt wenn wie länger als n Zeichen sind. Nur ich habe das problem das er die eingebettete Funktion schlichtweg ignoriert.
$1 läuft ohne weiteres durch die funktion cuthyper() durch und die var in dieser funktion hat auch nur den inhalt "$1".
Normalerweise sollte doch anstatt $1, der aus der klammer enstehende String der funktion cuthyper() übergeben werden. oder seh ich das falsch?
Klärt mich auf *hilfe* such schon voll ewig nach ner lösung.
hier mal mein code
Hoffe ihr könnt mir helfen
Gruss, nik
(versucht) um die option zu erweitern, das er die Links auch kürzt wenn wie länger als n Zeichen sind. Nur ich habe das problem das er die eingebettete Funktion schlichtweg ignoriert.$1 läuft ohne weiteres durch die funktion cuthyper() durch und die var in dieser funktion hat auch nur den inhalt "$1".
Normalerweise sollte doch anstatt $1, der aus der klammer enstehende String der funktion cuthyper() übergeben werden. oder seh ich das falsch?
Klärt mich auf *hilfe* such schon voll ewig nach ner lösung.
hier mal mein code
PHP-Code:
echo parseHyper("blabla [url]http://hallodoofesubdomain.domain.de/dasisjanentollesverzeichnis/undsoeineschoooeeeenneeedatei.html[/url] nochmehr blabla",1);
function parseHyper($string,$cut="0")
{
$search = array(
"/([\w\.\/\&\=\?\-]+)@([\w\.\/\&\=\?\-]+)/", // eMail
"/((ftp(7?):\/\/)|(ftp\.))([\w\.\/\&\=\?\-]+)/", // FTP
"/((http(s?):\/\/)|(www\.))([\w\.\/\&\=\?\-]+)/" // HTTP
);
$replace = array (
"<a href=\"mailto:$1@$2\">$1@$2</a>", // eMail
"<a href=\"ftp$3://$4$5\" target=\"_blank\">$4$5</a>", // FTP
"<a href=\"http$3://$4$5\" target=\"_blank\">$4$5</a>" // HTTP
);
$string = preg_replace ($search, $replace, $string);
$string = preg_replace ("/>(.*?)<\/a>/",">".cuthyper("$1",$cut)."</a>",$string);
return $string;
}
function cuthyper($str,$cut=0)
{
if($cut==1 && strlen($str) >= 44){
$sub1 = substr($str,0,30);
$sub2 = substr($str,-10);
$str = sprintf("%s ... %s",$sub1,$sub2);
}
return $str;
}
Gruss, nik
Moderator
Kommentar