8 berichten aan het bekijken - 1 tot 8 (van in totaal 8)
  • Q:
    Bijdrager
    vikking

    PHP: server OS verkrijgen?

    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!

    Bijdrager
    iJoost

    Ik zou het gewoon even vragen als ik jou was..

    Of anders misschien

    http://uptime.netcraft.com/up/graph?site=vikking20.deviantart.com

    Bijdrager
    madcat

    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.

    Bijdrager
    vikking

    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:
    [code:1:f03cf22ec0]$itunes_handle = new new COM("iTunes.application")[/code:1:f03cf22ec0]
    en dan bv om te play/pausen:
    [code:1:f03cf22ec0]$itunes_handle->PlayPause();[/code:1:f03cf22ec0]
    op Mac OS X moet ik om te play/pausen dit doen:
    [code:1:f03cf22ec0]exec("osascript -e ‘tell app "iTunes" to playpause’");[/code:1:f03cf22ec0]
    (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

    Bijdrager
    madcat

    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:)

    Bijdrager
    psuedo

    gebruik gewoon phpinfo(); en kijk of het daarin staat want ik krijg gewoon:

    [code:1:586228edb7]System: Darwin Kernel Version ***; ***/RELEASE_PPC Power Mac [/code:1:586228edb7]

    zo niet, geeft die global server_software geen versie van UNIX en is die gerelateerd aan OSX?

    Bijdrager
    vikking

    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 ^^):
    [code:1:ba39a390a5] 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;
    }

    }
    [/code:1:ba39a390a5]
    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 ^^.

    Bijdrager
    CaPS_

    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.

8 berichten aan het bekijken - 1 tot 8 (van in totaal 8)

Je moet ingelogd zijn om een reactie op dit onderwerp te kunnen geven.