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
$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
Kommentar