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.
Plocka ut adress
5 svar · 477 visningar · startad av nitro2k01
if (preg_match('/\\.[^\\/]+$/i', $str)){
print "This is a file";
}
else {
print "This is a folder";
}
print preg_replace('/^https?:\\/\\/(?:[^\\/]+\\/){2}(.*)$/', '\\/${1}', $str);
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.
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.
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