Oprettet fre. d. 25. februar 2005 kl. 16:25:04

dotcom1
dotcom1 (19.399 point. Point ude: 0)

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.

Skrevet fre. d. 25. februar 2005 kl. 16:44:56| #1

coderdk
coderdk (160.399 point)
Hvad med:

if ( !empty( $_SERVER['HTTP_REFERER'] ) )
{
  $display = preg_replace( "/^(.{48}).*?(.{49})$/", "\\1...\\2", $_SERVER['HTTP_REFERER'] );
  echo "Du kommer fra <a href='" . $_SERVER['HTTP_REFERER'] . "'>$display</a>";
}

Den laver http://www.eksperten.dk/ (...) om til http://www.eksper...pm/ (...)

:)

Skrevet fre. d. 25. februar 2005 kl. 16:48:57| #2

dotcom1
dotcom1 (19.399 point)
Okay, ser godt ud. Men hvor bestemmer jeg antallet af chars? Er ikke rigtig sej til de hersens regulare udtryk... :)

Skrevet fre. d. 25. februar 2005 kl. 16:51:24| #3

dotcom1
dotcom1 (19.399 point)
Ah ok, ved hhv. 48 og 49... Det er en super løsning. Læg et svar, coderdk. :)

Skrevet fre. d. 25. februar 2005 kl. 16:52:17| #4


Skrevet fre. d. 25. februar 2005 kl. 16:54:26| #5

dotcom1
dotcom1 (19.399 point)
Mange tak for hjælpen. :)

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Brugerliste med link til profil

Oprettet den 26. maj 2012 kl. 14.29
sayn giver 30 point for svar | Giv et svar »

php curl driller

Oprettet den 26. maj 2012 kl. 08.31
PHPnQrd giver 200 point for svar | Giv et svar »

Array i array

Oprettet den 25. maj 2012 kl. 08.32
sebster giver 60 point for svar | Giv et svar »



   




Tips & Tricks fra PC World

Teaser billede

Læserne: Her er vores værste it-indkøb

Det er ikke al it-udstyr, som er det rene guld. Her er nogle af læsernes skrækhistorier.


Anmeldelser fra PC World

Teaser billede

Test: Mobil med Ferrari-design - og en Trabant-motor

Motorola har begået endnu en smartphone med lækkert design og potentiale til at være blandt de bedste. Men den når ikke i mål. Se her hvorfor.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Sådan siger du farvel til Facebook

Læs her, hvordan du dropper Facebook og i stedet anvender nogle brugervenlige alternativer, så du stadig kan være social på nettet.


Nyheder fra Computerworld

Teaser billede

Galleri: De fedeste håndholdte gennem 40 år

Her har du de mest banebrydende håndholdte computere gennem alle tider.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger