Bild ablegen abhängig vom Betriebsystem

Wenn ich ein Bild ablegen will und z.B.


$image = IPS_GetKernelDir()."media\	estbild.png";  
var_dump($image);

nutze dann kommt auf einem Windows System


D:\IP-Symcon\media	estbild.png

als Antwort bei einem Raspberry käme


/var/lib/symcon/media	estbild.png

was so nicht geht. Also müste der Pfad bei Raspberry

$doorbirdimage = IPS_GetKernelDir()."media/testbild.png"; 

lauten was dann

/var/lib/symcon/media/testbild.png

ergibt.

Wenn ich jetzt ein PHP Modul habe von dem ich nicht weis auf welchem Betriebssystem IP-Symcon läuft, wie gebe ich dann dort nach Betriebssystem unterschiedlich den Pfad richtig an?

Nimm entweder immer den / der geht auch unter Windows. Oder die Konstante DIRECTORY_SEPARATOR.
Michael

Danke, wie immer, gibt nix was Du nicht weist;)

Funktioniert:


$image = IPS_GetKernelDir()."media".DIRECTORY_SEPARATOR."testbild.png";  
var_dump($image);

Die Info zum Betriebssystem womit PHP gebaut worden ist liefert die Systemkonstante PHP_OS. IdR. ist das auch das laufende Betriebssystem.

Die Funktion php_uname($mode=‚s‘) liefert das laufende Betriebssystem.

Um nur zu unterscheiden, ob es Windows oder Unix ist, reicht i.d.R schon die Abfrage auf die schon genannten DIRECTORY_SEPERATOR Konstante (’/’==Unix, auch Mac, alles andere Windows)

Tommi

weitere Variante: den Separator von IPS liefern lassen und wiederverwenden. Wenn das nicht funktioniert, wird IPS auch nicht laufen.


define('TR', substr(IPS_GetKernelDir(), -1, 1));

$dir                                         = IPS_GetKernelDir()."webfront".TR."user".TR."RS_RainRadar_Forecast".TR.$projektname.TR;