Just nu i M3-nätverket
Jump to content

Mapp-avdelare


Cariad

Recommended Posts

Det här är en relativt enkel fråga, nämligen hur man tar reda på vilket tecken som används som mappavdelare på ett system.

 

Jag håller på att skriva ett litet skript som ska kunna köras på både Linux och Windows, och då måste jag veta om man använder "/" eller "\" som mappavdelare.

 

Någon som har någon erfarenhet av detta? Jag har kollat i phpinfo() utan att hitta någon variabel. Kanske det finns någon konstant?

 

Link to comment
Share on other sites

Hrrrm, inte en aning om det finns nån konstant eller funktion eller nåt faktiskt.... varför ska du krångla till det så?? :)

 

Ett sätt att lösa det på kan dock vara att använda dig av funktionen getcwd() och på så vis få reda på pathen till den fil du kör just nu. Då borde väl nånting liknande detta fungera om pathen under windows även returnerar enhetsbokstaven o allt... (c:\inetpub\blabla\fil.php):

 

$path = getcwd();

if (strstr($path, ":\\")) {
// Tydligen ett Windows system
} else {
// Tydligen inte Windows
}

 

Inte säker på om detta fungerar eftersom jag inte kan testa på ett windows system, men det är ju värt ett försök! :)

 

--

Some say I am crazy.. but the Voices in my head disagree...

 

[inlägget ändrat 2003-01-07 21:50:12 av Bj0rN]

Link to comment
Share on other sites

Inte säker på om detta fungerar eftersom jag inte kan testa på ett windows system, men det är ju värt ett försök! :)

Testade på ett Win-system (Apache) och IF-satsen tyckte mycket riktigt att det var ett Win-system! ;)

 

 

 

Almir - ...

____________________________________________________________

-Läser Programmet för Informatik med Systemvetenskap på MDH, Västerås.-

 

Link to comment
Share on other sites

Ahh se där, då fungerar det att göra så då! :) Frågan är dock om det finns nåt snyggare sätt mha nån inbyggd funktion eller nån konstant. Har letat runt lite i manualen, men än så länge inte hittat nånting om det.

 

--

Some say I am crazy.. but the Voices in my head disagree...

 

Link to comment
Share on other sites

Nej, jag hittade inte heller något, det var därför jag frågade.

 

Men jag får väl lov att köra en "ful" lösning, som den du föreslog ;)

 

Så här blev det i slutändan:

$mappavdelare = strpos(__FILE__, "/") !== false ? "/" : "\\";

 

En fil i Windows kan ju nämligen aldrig ha ett snedstreck i sig.

 

Link to comment
Share on other sites

Funkar det inte att använda / i Windows? Har för mej att PHP ordnar det själv, vilket till viss del styrks av det här:

On Windows, both slash (/) and backslash (\) are used as path separator character. In other environments, it is the forward slash (/).

(http://www.php.net/manual/en/function.dirname.php)

 

...

Vänta, hittade nu konstanten DIRECTORY_SEPARATOR (http://www.php.net/manual/en/reserved.constants.standard.php). Verkar vara det du letar efter.

[inlägget ändrat 2003-01-08 00:01:24 av zerblat]

Link to comment
Share on other sites

Tack!

Precis den jag letade efter (konstanten DIRECTORY_SEPARATOR). Jag visste att jag hade sett att den fanns någonstans ;)

 

Har inte kunnat kontrollera om den fungerar på Windows än, men...

 

Link to comment
Share on other sites

Har inte kunnat kontrollera om den fungerar på Windows än, men...

Konstanten DIRECTORY_SEPARATOR fungerar i Windows, om det var det du tänkte på. Den är \.

 

 

Almir - ...

____________________________________________________________

-Läser Programmet för Informatik med Systemvetenskap på MDH, Västerås.-

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...