Hallo an alle Leser,
ich möchte gerne einen String mit einem zweidimensionalen Array durchsuchen:
Alle http:// werden gefunden, https:// und ftp:// jedoch nicht, obwohl diese bei 0 beginnen.
Irgendetwas scheint also noch im Script zu fehlen, ich weiß aber nicht was.
Auf die altmodische Methode mit ODER Befehl ohne Array funktioniert es:
Mir wäre es allerdings lieber das mit einem Array zu prüfen.
Ich hoffe Ihr könnt mir ein wenig auf die Sprünge helfen.
Vielen Dank im Voraus,
Indium1
ich möchte gerne einen String mit einem zweidimensionalen Array durchsuchen:
PHP:
function _make_url_clickable($matches)
{
$ret = '';
$url = $matches[2];
$linkname = $matches[2];
$protokoll = array();
$protokoll[0]["protokoll"] = 'http://';
$protokoll[0]["length"] = 7;
$protokoll[1]["protokoll"] = 'https://';
$protokoll[1]["length"] = 8;
$protokoll[2]["protokoll"] = 'ftp://';
$protokoll[2]["length"] = 6;
foreach ($protokoll as $protokoll)
{
if (substr($url,0,$protokoll["length"]) == $protokoll["protokoll"])
{
//echo 'Protokoll am Anfang des Strings gefunden';
return $matches[1] . "<a href=\"$url\" rel=\"nofollow\" target=\"_blank\">$linkname</a>" . $ret;
}
else
{
//echo 'Kein Protokoll am Anfang des Strings gefunden';
$ergebnis = $url;
return $ergebnis;
}
}
}
Irgendetwas scheint also noch im Script zu fehlen, ich weiß aber nicht was.
Auf die altmodische Methode mit ODER Befehl ohne Array funktioniert es:
PHP:
if (substr($url,0,7) == 'http://' || substr($url,0,8) == 'https://' || substr($url,0,6) == 'ftp://')
{
//echo 'Protokoll am Anfang des Strings gefunden';
}
else
{
//echo 'Kein Protokoll am Anfang des Strings gefunden';
}
Ich hoffe Ihr könnt mir ein wenig auf die Sprünge helfen.
Vielen Dank im Voraus,
Indium1