I have a PHP script that may be placed on a windows system or a linux system. I need to run different commands in either case.
how can i detect which environment i am in? (preferably something php rather than clever system hacks)
sorry sorry!! the script is running from the command line!!!!
Source: Tips4all, CCNA FINAL EXAM
Check the value of the PHP_OS constantDocs.
ReplyDeleteIt will give you various values on Windows like WIN32, WINNT or Windows.
See as well: Possible Values For: PHP_OS and php_unameDocs:
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
echo 'This is a server using Windows!';
} else {
echo 'This is a server not using Windows!';
}
The php_uname function can be used to detect this.
ReplyDeleteecho php_uname();
not the most robust way to do a test, but you can check if the directory seperator is / (linux) or \ windows. the constant name is DIRECTORY_SEPARATOR
ReplyDeleteif (DIRECTORY_SEPARATOR == '/') {
// linux
}
if (DIRECTORY_SEPARATOR == '\') {
// windows
}
From http://www.php.net/manual/en/reserved.variables.server.php#102162 :
ReplyDelete<?php
echo '<table border="1">';
foreach ($_SERVER as $k => $v){
echo "<tr><td>" . $k ."</td><td>" . $v . "</td></tr>";
}
echo "</table>"
?>
This is the entire $_SERVER array... as ArtWorkAD has noted, by using the HTTP_USER_AGENT key, you can extract the OS more explicitly.