PHP: Forkorte lange links

Tags:    php

Heay

Jeg kom lige til at paste et meget langt link på min blog:
http://www.jacobworsoe.dk/

Jeg har set nogle sites f.eks. hol.dk hvor lange links bliver "beskåret" så den kun viser de første 40 tegn og resten bliver så omdannet til 3 punktummer så man kan se at linket i virkeligheden er meget længere.

Derved ville mit link komme til at se således ud:
http://pop.pcpop.com/default.aspx?MainUr...

Nogen der ved hvordan man laver det i PHP?



6 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
hvis dit link er i en variable kaldet link.

if(strlen($link)>40){
$link=substr($link,0,37)."...";
}



Okay. Mit link er dog bare en del af hele den streng som indeholder nyheden. Så jeg skal nok lige have lavet en while-loop, der finder alle links og tjekker deres længde.



det behøver du jo sådan set ikke hvem end der har skrevet koden til din blog kan jo allerede finde linksne medmindre du da selv indikere at der er tale om et link. Hvis det er det første tilfælde behøver du blot finde udaf hvor i koden han laver links og rette der(ideelt set) hvis det er det andet er der da sandsynligvis en eller anden syntaks der tillader dig at skrive en alternativ tekst til et link.



Det er mig selv der har skrevet alt kode :)

Men jeg har fundet ud af at det er noget med at søge efter http:// eller www og så arbejde med dem derfra :)



Heay

Jeg kom lige til at paste et meget langt link på min blog:
http://www.jacobworsoe.dk/

Jeg har set nogle sites f.eks. hol.dk hvor lange links bliver "beskåret" så den kun viser de første 40 tegn og resten bliver så omdannet til 3 punktummer så man kan se at linket i virkeligheden er meget længere.

Derved ville mit link komme til at se således ud:
http://pop.pcpop.com/default.aspx?MainUr...

Nogen der ved hvordan man laver det i PHP?


Skal du bruge noget der kan kigge en tekst igennem efter lange links og s forkorte dem?? og hvis det er sådan, er linket allerede html, eller står det bare i ren form?



Ja... Er kommet frem til at noget i denne stil skal kunne gøre det:

$string = ereg_replace("[[:alpha:]]{3,5}://([^<>[:space:]]{1,40})([^<>[:space:]]*)", "<a href=\\"\\\\0\\">\\\\1</a>", $string);



t