PHP: server OS verkrijgen?
vikking op 17 juni 2007 #
Ik zou moeten kunnen weten op welk OS de server loopt waarop mijn script loopt. Ik heb $_SERVER['SERVER_SOFTWARE'] al gevonden, maar dan geeft ie bij Mac OS X en Linux gewoon Unix (Windows geeft win32, wat goed is ^^). Is er een manier om toch te weten te komen of mijn server Mac OS X of Linux loopt? Bedankt!
iJoost op 17 juni 2007 #
Ik zou het gewoon even vragen als ik jou was.. Of anders misschien http://uptime.netcraft.com/up/graph?site=vikking20.deviantart.com
madcat op 17 juni 2007 #
hier heb je een lijstje die je kan gebruiken: http://nl3.php.net/reserved.variables http://www.ordersomewherechaos.com/rosso/xssi/background/environmentvars-func.shtml SERVER_SOFTWARE is eigenlijk wel de juiste, OSX is ook unix. Wat je altijd nog kan doen is een POST doen om vervolgens de HTTP_USER_AGENT uit te lezen, daar staat soms meer informatie.. maar is eigenlijk niet te vertrouwen.
vikking op 17 juni 2007 #
Ik zal even precisieren voor wat ik het nodig heb ^^.
Ik ben bezig om in PHP een controller voor iTunes te maken. In Windows gaat dit met:
$itunes_handle = new new COM("iTunes.application")
en dan bv om te play/pausen:
$itunes_handle->PlayPause();
op Mac OS X moet ik om te play/pausen dit doen:
exec("osascript -e 'tell app "iTunes" to playpause'");
(nog niet getest of dat zou werken omdat de beveiliging in Mac OS X normaal nogal hoog is, en dat het OS gaat tegenhouden om vanuit een PHP script een shell command uit te voeren).
Dus @iJoost: ik moet die niet van deviantart weten
en @madcat: bennik al eens doorgelopen, niets interessants gevonden.
Toch al bedankt :D
madcat op 18 juni 2007 #
wat je altijd kan doen is kijken of een bepaald bestand bestaat...
bijvoorbeeld /mach
als dat bestand bestaat.. kan je er vrij zeker van zijn dat het een osx systeem is.
Het is niet netjes, maar werkt wel![]()
psuedo op 18 juni 2007 #
gebruik gewoon phpinfo(); en kijk of het daarin staat want ik krijg gewoon:
System: Darwin Kernel Version ***; ***/RELEASE_PPC Power Mac
zo niet, geeft die global server_software geen versie van UNIX en is die gerelateerd aan OSX?
vikking op 18 juni 2007 #
Oké ik heb het gedaan gekregen met phpinfo(INFO_GENERAL). Dit is de functie die ik nu gebruik (voor andere mensen die er misschien achter zoeken ^^):
function get_platform($full = false){
ob_start();
phpinfo(INFO_GENERAL);
$info = ob_get_contents();
ob_end_clean();
$temp_arr = explode("n", $info);
$system_string = trim(str_replace("System ", "", strip_tags($temp_arr[31])));
if($full){
return $system_string;
}
$words = explode(" ", $system_string);
if(strtolower($words[0]) == "windows"){
return "win";
}elseif(strtolower($words[count($words) - 1]) == "macintosh"){
return "mac";
}else{
return false;
}
}
Ik moet nog eens zien wat de string is op een linux server, dus momenteel even in de code gewoon een return false. Ik sta open voor verbeteringen ^^.
CaPS_ op 18 juni 2007 #
Je kunt ook simpelweg de constante PHP_OS gebruiken. Zie http://www.scriptorama.nl/tips-tricks/portable-php-scripts voor meer info & meer handige constanten.
Advertentie
Je kunt alleen reageren met een gratis OMT account.
Log in of registreer.