webForumDet fria alternativet

Plocka ut adress

5 svar · 477 visningar · startad av nitro2k01

nitro2k01Medlem sedan aug. 20039 342 inlägg
#1

Jag behöver ett skript som gör följande:
Givet en URL i en variabel, så ska skriptet avgöra om det är en katalog eller fil, dett ska kollas genom att se om det finns en punkt sist i URL'en samt om den slutar på /. Alltså:
Följande ska alltså tolkas som en...
fil: http://www.doman.com/abc/def/ghi.html
mapp: http://www.doman.com/abc/def/ghi.html/
mapp: http://www.doman.com/abc/def
mapp: http://www.doman.com/abc/def/

Vidare ska den plocka ut allt som kommer efter domännamnet och en katalog, i detta fall abc. Alltså vill jag i respektive exempel ovan få ut:
/def/ghi.html
/def/ghi.html/
/def
/def/

Allt detta gärna med en (eller flera) regexps.

Peter SMedlem sedan dec. 20025 483 inlägg
#2
if (preg_match('/\\.[^\\/]+$/i', $str)){
    print "This is a file";
}
else {
    print "This is a folder";
}

print preg_replace('/^https?:\\/\\/(?:[^\\/]+\\/){2}(.*)$/', '\\/${1}', $str);
nitro2k01Medlem sedan aug. 20039 342 inlägg
#3

Avkänningen av fil/mapp funkar som jag vill. Dock verkar inte ersättningen lyckas. Den exakta strängen som jag vill ta bort är http://www2.hemsida.net/dtd i början av adressen.
Dock verkar varken

print preg_replace('http\:\/\/www2\.hemsida\.net\/dtd', '', $str);
// eller
print preg_replace('http://www2.hemsida.net/dtd', '', $str);

get detta resultat.

Peter SMedlem sedan dec. 20025 483 inlägg
#4

Eftersom jag inte är någon PHP-guru testade jag mitt uttryck här med bra resultat. Sedan knåpade jag ihop koden ovan med hjälp av manualen. Någon med bättre koll kanske kan se vad som gått snett.

:)

nitro2k01Medlem sedan aug. 20039 342 inlägg
#5

Med lite trixande lyckades jag få till en lösning som funkar för mitt syfte:

if (preg_match('/\.[^\/]+$/i', $str)){
    print "This is a file";
}
else {
    print "This is a folder";
}

echo '/' . preg_replace('/^https?:\/\/(?:[^\/]+\/){2}/', '', "http://www2.hemsida.net/dtd/vadsomhelst");

Den sista raden var jag tvungen att ändra på för att den skulle funka. Det beror troligen på skillnader i PHP-versionerna eller något.

SkogenskonungMedlem sedan okt. 200450 inlägg
#6

Hur avgöra URL?

Hej!

Min ordinarie webbadress är https://www.kolarbyn.se, men även https://www.skogenskonung.se och https://www.wildsweden.com och https://www.wildsweden.se och https://www.moosesafari.com går till samma webbplats. Nu vill jag göra så att alla som går in på https://www.moosesafari.com och https://www.wildsweden.com ska komma direkt till vår engelska startsida som har följande URL:

http://www.kolarbyn.se/start.asp?lang=en

(Dvs att en språk-cookie sätts till engelska.)

Hur avgör jag vilken webbadress som användaren skrivit in? Jag antar att det är enklast att avgöra det genom en if-sats och sedan redirect till ovanstående url?

Tacksam för kodhjälp!

Mvh Marcus

130 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)