forkorte url


Gå til bund
Gravatar

#1 searchia 31. dec. 2008 14:58

Hej
vil gerne hører om det er muligt at forkorte et url via php eller javascript.

Det jeg mener me forkorte et url at skaffe det stammen af urlen.

Et eksempel er:
orginal url: http://newz.dk/forum/programmering/

Forkortet Url: http://newz.dk/

er der nogen kode der kan gøre det???
http://zhift.com/ Zhift your search engine
Gravatar

#2 myplacedk 31. dec. 2008 14:59

Find tredje "/", og klip derefter.
Gider du lige sætte navn på bagsiden af mit Möbius pandebånd?
Gravatar

#3 searchia 31. dec. 2008 15:00

kan man ikke gøre det automatiseret da det er mange urls der er tale om
http://zhift.com/ Zhift your search engine
Gravatar

#4 plazm 31. dec. 2008 15:31

$short = substr($url,0,strpos($url,"/",7));
www.plazm.dk
Gravatar

#5 arne_v 31. dec. 2008 15:38

#1

Der er en teknisk del - hvordan får man fat i den første del af URL strengen - den kan løses med basal streng manipulation eller med:
http://www.php.net/manual/en/function.parse-url.ph...

Og så er der en logisk del - hvor skal det laves henne for at løse det probæem du forsøger at løse - det er ikke muligt at besvare udfra dit spørgsmål.
The greater danger for most of us lies not in setting our aim too high and falling short; but in setting our aim too low, and achieving our mark.
Gravatar

#6 Windcape 1. jan. 2009 00:02

Umidbart gæt:


$url = "http://newz.dk/forum/programmering/";
$link = sprintf('<a href="%s">%s</a>',
$url,parse_url($url,PHP_URL_HOST)
);


Resultatet skulle gerne være:


<a href="http://newz.dk/forum/programmering/">newz.dk</a>


Derudover går jeg ud fra at du skal bruge det til noget bruger-software (forum / blog).

For at finde de forskellige URLs skal du så benytte en regulare expression (det er ihvertfald nemmest).

Du kan omskrive den overstående kode til en preg_replace som virker på en størrere chunk kode. Men det vil kræve lidt tid og effort at lære.

Enjoy Reading :-)
http://about.me/windcape
Gravatar

#7 Benjamin Krogh 3. jan. 2009 18:01

Regex:

'(http://)?[^.]+\.[a-zA-Z]+'


Og ja, du kan ligeså godt lære regex med det samme hvis du satser på at programmere professionelt ;)
<Life> = <Life> (<Sleep>|<Eat>|<Work>)
Gravatar

#8 arne_v 3. jan. 2009 18:08

#7

Regex er noget man bør lære.

Men jeg kan ikke forestille mig at nogen professionel programmør ville vælge en hjemmestrikket regex fremfor en indbygget funktion.


Vedkommende ville vide at risikoen for at lave en fejl er det ! :-)
The greater danger for most of us lies not in setting our aim too high and falling short; but in setting our aim too low, and achieving our mark.
Gravatar

#9 arne_v 3. jan. 2009 18:22

#8

Tag nu f.eks. en tilfældig regex som '/(http://)?[^.]+\.[a-zA-Z]+/' !

For http://www.tv2.dk/foobar.html vil den returnere http://www.tv mens parse_url($url,PHP_URL_HOST) vil returnere www.tv2.dk ...

Man skal bruge parse_url($url,PHP_URL_SCHEME) for få protokollen med urlparse.
The greater danger for most of us lies not in setting our aim too high and falling short; but in setting our aim too low, and achieving our mark.
Gravatar

#10 Benjamin Krogh 3. jan. 2009 18:26

#8, true indeed.
<Life> = <Life> (<Sleep>|<Eat>|<Work>)
Gravatar

#11 Benjamin Krogh 3. jan. 2009 18:37

#9 sjovt nok er http://www.tv en valid URL (bare ikke helt den samme) ;)

Hvis man vil være sikker burde man jo slå op i RFC'erne for URLs, domain names og Top level domains og så verificere at den indbyggede funktion i PHP faktisk parser derefter. :)

Kommer an på hvor kritisk det er hvis en applikation fejler.
<Life> = <Life> (<Sleep>|<Eat>|<Work>)

#12 majabe 8. aug. 2018 12:01

[Indlæg er markeret som spam]
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login