Avatar billede magnus_madsen Nybegynder
25. september 2002 - 20:23 Der er 5 kommentarer og
2 løsninger

"basename" på url's

Jeg ønsker en funktion i reg exp/php som kan tage en streng og finde "basename/domænet" på en url, fx:

http://test.dk/test/2/index.php?i=1&g=p&osv=1
bliver til
http://test.dk

Jeg fatter papir-hat af reg exp så funktionen ønskes laves. På forhånd tak :)
Avatar billede pulzu Nybegynder
25. september 2002 - 20:27 #1
pseudo-kode
i=1
j=antal tegn
skraa=0
DO
FORØG i
HVIS skraa=3 SÅ EXIT LOOP
HVIS TEGN(URL,i)="/" SÅ FORØG skraa
LOOP indtil i=j
baseurl=VENSTRE(URL,i)
Avatar billede pulzu Nybegynder
25. september 2002 - 20:27 #2
^
Få en anden til at lave det til det prog. sprog du ønsker.
Avatar billede magnus_madsen Nybegynder
25. september 2002 - 20:29 #3
Uhm, jeg er ikke helt sikker på hvordan det skal se ud i php..
PS. Checker den der så for fx domain.dk?p=i&osv=1
Avatar billede jespernaur Nybegynder
25. september 2002 - 22:34 #4
Prøv følgende:

function base_url( $url )
{
  return preg_replace( '#^([^/]+//[^/\?]+).+#', '\\1', $url );
}

Den returnerer

fra starten af strengen til første forekomst af //
efterfulgt af alt til men ikke med næste forekomst af / eller ?

Mvh
Jesper Naur
Avatar billede teaspoon Nybegynder
26. september 2002 - 17:07 #5
vil næsten tro at php funktionen parse_url er mere brugbar.

function base_url($url) {
  $url_info = parse_url($url);
  return $url_info['scheme'] ."://". $url_info['host'];
}
Avatar billede magnus_madsen Nybegynder
27. september 2002 - 18:49 #6
Teaspoon, jeg skal bruge et svar, ellers kan jeg ikke dele points..
Avatar billede teaspoon Nybegynder
27. september 2002 - 18:57 #7
ok
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester