if else længde på streng
Jeg bruger følgende til at angive referer url, hvis der er en:
if (isset($_SERVER['HTTP_REFERER'])) {
echo "<b>Oprindelse:</b> Den side, du kommer fra er:<br /><a class=\"orange\" href=\"".$_SERVER['HTTP_REFERER']."\" target=\"_blank\">".$_SERVER['HTTP_REFERER']."</a><br />";
} else {
echo "";
}
Men: ofte kan sådanne referers være meget lange (hvis det fx er en søgning fra Google), så jeg har brugt følgende funktion til at forkorte strengen til max. 100:
function shorten($string, $num)
{
if(strlen($string) > $num)
{
$temp = substr( $string, 0, $num-2);
$temp .= "...";
return $temp;
}
else
return $string;
}
if (isset($_SERVER['HTTP_REFERER'])) {
$string = "<b>Den side, du kom fra er:</b><br />".$_SERVER['HTTP_REFERER']."";
echo (shorten($string, 100));
}
Det virker fint, men så kan referer url'en ikke længere gengives som link idet det sidste </a> skæres væk.
Kan man lave en funktion, der viser referer som link (selvom url'en er meget lang), men som synligt kun er fx. 100 chars lang?
Altså, så man ser fx.
http://www.eksperten.dk/ (...) mens linket reelt har url'en
http://www.eksperten.dk/ (...)Håber, det giver mening.
Alternativt, hvis det første er umuligt, kunne man måske lave en funktion, der viser refererlinks som i første eksempel hvis der er tale om en url under 100 anslag, og som forkorter en url der er over 100 anslag til en almindelig streng med ... til sidst.
Mvh.