phpos,phposs文件上傳到服務器

本文目錄一覽:

php如何判斷當前的操作系統是linux還是windows

PHP判斷當前操作系統的方法很多,比如:

1.直接使用PHP預定義常量PHP_OS來獲取;

?php

header(“Content-type:text/html;charset=utf-8;”);

$os_name=PHP_OS;

if(strpos($os_name,”Linux”)!==false){

    $os_str=”Linux操作系統”;

}else if(strpos($os_name,”WIN”)!==false){

    $os_str=”Windows操作系統”;

}

echo $os_str;

2.還可以通過用戶瀏覽器信息來判斷操作系統。

?php

header(“Content-type:text/html;charset=utf-8;”);

//測試

echo get_user_os();

//Windows操作系統

function get_user_os(){ 

    //獲取用戶瀏覽信息參數

    $agent = $_SERVER[‘HTTP_USER_AGENT’]; 

    

    //獲取操作系統類型

    if(strpos($agent,”NT 6.1″)){ 

        $os_name =”Windows 7″;  

    } elseif(strpos($agent,”NT 5.1″)) {  

       $os_name =”Windows XP (SP2)”;  

    } elseif(strpos($agent,”NT 5.2″)  strpos($agent,”WOW64″)){  

       $os_name =”Windows XP 64-bit Edition”;  

    } elseif(strpos($agent,”NT 5.2″)) { 

        $os_name =”Windows 2003″;  

    } elseif(strpos($agent,”NT 6.0″)) { 

        $os_name =”Windows Vista”;  

    } elseif(strpos($agent,”NT 5.0″)) { 

      $os_name =”Windows 2000″;  

    } elseif(strpos($agent,”4.9″)) { 

       $os_name =”Windows ME”; 

    } elseif(strpos($agent,”NT 4″)) { 

       $os_name =”Windows NT 4.0″; 

    } elseif(strpos($agent,”98″)) { 

      $os_name =”Windows 98″; 

    } elseif(strpos($agent,”95″)) { 

        $os_name =”Windows 95″; 

    }elseif(strpos($agent,”Linux”)) {  

        $os_name =”Linux”; 

    }

    //判斷

    if(strpos($os_name,”Linux”)!==false){

        $os_str=”Linux操作系統”;

    }else if(strpos($os_name,”Windows”)!==false){

        $os_str=”Windows操作系統”;

    }else{

        $os_str=”未知操作系統”;

    }

    return $os_str;  

}

3.使用php_uname函數來獲取;

?php

header(“Content-type:text/html;charset=utf-8;”);

$os_name=php_uname();

if(strpos($os_name,”Linux”)!==false){

    $os_str=”Linux操作系統”;

}else if(strpos($os_name,”Windows”)!==false){

    $os_str=”Windows操作系統”;

}

echo $os_str;

如何解決OS X系統中PHP不支持Freetype的問題

為了方便顯示PHP的信息,寫了一個test.php頁面,頁面的代碼很簡單:打開頁面後,發現當前的PHP版本是5.5,並且GD已經開啟,但是沒有Freetype庫。原來在OSXYosemite10.10自帶的PHP是沒有將Freetype編譯進去的。不過我找了一個簡單的法,繼續看下去。打開終端,輸入命令:curl-sphp-osx.liip.ch/install.shbash-s5.6PS:大家可以直接訪問php-osx.liip.ch,雖然是英文,但是介紹是清晰的安裝完後,重新打開test.php,PHP的版本已經變成5.6,並且Freetype都已經安裝。再打開項目,驗證碼能夠正常顯示了。

php的服務器cpu數量怎麼獲取

?php

header(“Content-type: text/html; charset=utf-8”); 

error_reporting(E_ALL ^ E_DEPRECATED);

//linux系統探測

function sys_linux() {

    // CPU

    if (false === ($str = @file(“/proc/cpuinfo”))) return false;

    $str = implode(“”, $str);

    @preg_match_all(“/model\s+name\s{0,}\:+\s{0,}([\w\s\)\(\@.-]+)([\r\n]+)/s”, $str, $model);

    @preg_match_all(“/cpu\s+MHz\s{0,}\:+\s{0,}([\d\.]+)[\r\n]+/”, $str, $mhz);

    @preg_match_all(“/cache\s+size\s{0,}\:+\s{0,}([\d\.]+\s{0,}[A-Z]+[\r\n]+)/”, $str, $cache);

    @preg_match_all(“/bogomips\s{0,}\:+\s{0,}([\d\.]+)[\r\n]+/”, $str, $bogomips);

    if (false !== is_array($model[1]))    {

    $res[‘cpu’][‘num’] = sizeof($model[1]);

    $res[‘cpu’][‘num_text’] = str_replace(array(1,2,4,8,16), array(‘單’,’雙’,’四’,’八’,’十六’), $res[‘cpu’][‘num’]).’核’;

        /*

        for($i = 0; $i  $res[‘cpu’][‘num’]; $i++) {

            $res[‘cpu’][‘model’][] = $model[1][$i].’nbsp;(‘.$mhz[1][$i].’)’;

            $res[‘cpu’][‘mhz’][] = $mhz[1][$i];

            $res[‘cpu’][‘cache’][] = $cache[1][$i];

            $res[‘cpu’][‘bogomips’][] = $bogomips[1][$i];

        }*/

    $x1 = ($res[‘cpu’][‘num’]==1) ? ” : ‘ ×’.$res[‘cpu’][‘num’];

        $mhz[1][0] = ‘ | 頻率:’.$mhz[1][0];

        $cache[1][0] = ‘ | 二級緩存:’.$cache[1][0];

        $bogomips[1][0] = ‘ | Bogomips:’.$bogomips[1][0];

        $res[‘cpu’][‘model’][] = $model[1][0].$mhz[1][0].$cache[1][0].$bogomips[1][0].$x1;

        if (false !== is_array($res[‘cpu’][‘model’])) $res[‘cpu’][‘model’] = implode(“br /”, $res[‘cpu’][‘model’]);

        if (false !== is_array($res[‘cpu’][‘mhz’])) $res[‘cpu’][‘mhz’] = implode(“br /”, $res[‘cpu’][‘mhz’]);

        if (false !== is_array($res[‘cpu’][‘cache’])) $res[‘cpu’][‘cache’] = implode(“br /”, $res[‘cpu’][‘cache’]);

        if (false !== is_array($res[‘cpu’][‘bogomips’])) $res[‘cpu’][‘bogomips’] = implode(“br /”, $res[‘cpu’][‘bogomips’]);

    }

    // NETWORK

    // UPTIME

    if (false === ($str = @file(“/proc/uptime”))) return false;

    $str = explode(‘ ‘, implode(“”, $str));

    $str = trim($str[0]);

    $min = $str / 60;

    $hours = $min / 60;

    $days = floor($hours / 24);

    $hours = floor($hours – ($days * 24));

    $min = floor($min – ($days * 60 * 24) – ($hours * 60));

    if ($days !== 0) $res[‘uptime’] = $days.”天”;

    if ($hours !== 0) $res[‘uptime’] .= $hours.”小時”;

    $res[‘uptime’] .= $min.”分鐘”;

    // MEMORY

    if(false === ($str = @file(“/proc/meminfo”))) return false;

    $str = implode(“”, $str);

    preg_match_all(“/MemTotal\s{0,}\:+\s{0,}([\d\.]+).+?MemFree\s{0,}\:+\s{0,}([\d\.]+).+?Cached\s{0,}\:+\s{0,}([\d\.]+).+?SwapTotal\s{0,}\:+\s{0,}([\d\.]+).+?SwapFree\s{0,}\:+\s{0,}([\d\.]+)/s”, $str, $buf);

      preg_match_all(“/Buffers\s{0,}\:+\s{0,}([\d\.]+)/s”, $str, $buffers);

    $res[‘mem_total’] = round($buf[1][0]/1024, 2);

    $res[‘mem_free’] = round($buf[2][0]/1024, 2);

    $res[‘mem_buffers’] = round($buffers[1][0]/1024, 2);

      $res[‘mem_cached’] = round($buf[3][0]/1024, 2);

    $res[‘mem_used’] = $res[‘mem_total’]-$res[‘mem_free’];

    $res[‘mem_percent’] = (floatval($res[‘mem_total’])!=0)?round($res[‘mem_used’]/$res[‘mem_total’]*100,2):0;

    $res[‘mem_real_used’] = $res[‘mem_total’] – $res[‘mem_free’] – $res[‘mem_cached’] – $res[‘mem_buffers’]; //真實內存使用

      $res[‘mem_real_free’] = $res[‘mem_total’] – $res[‘mem_real_used’]; //真實空閑

    $res[‘mem_real_percent’] = (floatval($res[‘mem_total’])!=0)?round($res[‘mem_real_used’]/$res[‘mem_total’]*100,2):0; //真實內存使用率

      $res[‘mem_cached_percent’] = (floatval($res[‘mem_cached’])!=0)?round($res[‘mem_cached’]/$res[‘mem_total’]*100,2):0; //Cached內存使用率

    $res[‘swap_total’] = round($buf[4][0]/1024, 2);

    $res[‘swap_free’] = round($buf[5][0]/1024, 2);

    $res[‘swap_used’] = round($res[‘swap_total’]-$res[‘swap_free’], 2);

    $res[‘swap_percent’] = (floatval($res[‘swap_total’])!=0)?round($res[‘swap_used’]/$res[‘swap_total’]*100,2):0;

    // LOAD AVG

    if (false === ($str = @file(“/proc/loadavg”))) return false;

    $str = explode(‘ ‘, implode(“”, $str));

    $str = array_chunk($str, 4);

    $res[‘load_avg’] = implode(‘ ‘, $str[0]);

    return $res;

}

//FreeBSD系統探測

function sys_freebsd() {

    //CPU

    if (false === ($res[‘cpu’][‘num’] = get_key(“hw.ncpu”))) return false;

  $res[‘cpu’][‘num_text’] = str_replace(array(1,2,4,8,16), array(‘單’,’雙’,’四’,’八’,’十六’), $res[‘cpu’][‘num’]).’核’;

    $res[‘cpu’][‘model’] = get_key(“hw.model”);

    //LOAD AVG

    if (false === ($res[‘load_avg’] = get_key(“vm.loadavg”))) return false;

    //UPTIME

    if (false === ($buf = get_key(“kern.boottime”))) return false;

  $buf = explode(‘ ‘, $buf);

  $sys_ticks = time() – intval($buf[3]);

  $min = $sys_ticks / 60;

  $hours = $min / 60;

  $days = floor($hours / 24);

  $hours = floor($hours – ($days * 24));

  $min = floor($min – ($days * 60 * 24) – ($hours * 60));

  if ($days !== 0) $res[‘uptime’] = $days.”天”;

  if ($hours !== 0) $res[‘uptime’] .= $hours.”小時”;

  $res[‘uptime’] .= $min.”分鐘”;

 //MEMORY

  if (false === ($buf = get_key(“hw.physmem”))) return false;

  $res[‘mem_total’] = round($buf/1024/1024, 2);

  $str = get_key(“vm.vmtotal”);

  preg_match_all(“/\nVirtual Memory[\:\s]*\(Total[\:\s]*([\d]+)K[\,\s]*Active[\:\s]*([\d]+)K\)\n/i”, $str, $buff, PREG_SET_ORDER);

  preg_match_all(“/\nReal Memory[\:\s]*\(Total[\:\s]*([\d]+)K[\,\s]*Active[\:\s]*([\d]+)K\)\n/i”, $str, $buf, PREG_SET_ORDER);

  $res[‘mem_real_used’] = round($buf[0][2]/1024, 2);

  $res[‘mem_cached’] = round($buff[0][2]/1024, 2);

  $res[‘mem_used’] = round($buf[0][1]/1024, 2) + $res[‘mem_cached’];

  $res[‘mem_free’] = $res[‘mem_total’] – $res[‘mem_used’];

  $res[‘mem_percent’] = (floatval($res[‘mem_total’])!=0)?round($res[‘mem_used’]/$res[‘mem_total’]*100,2):0;

  $res[‘mem_real_percent’] = (floatval($res[‘mem_total’])!=0)?round($res[‘mem_real_used’]/$res[‘mem_total’]*100,2):0;

  return $res;

}

//取得參數值 FreeBSD

function get_key($keyName) {

  return do_command(‘sysctl’, “-n $keyName”);

}

//確定執行文件位置 FreeBSD

function find_command($commandName) {

  $path = array(‘/bin’, ‘/sbin’, ‘/usr/bin’, ‘/usr/sbin’, ‘/usr/local/bin’, ‘/usr/local/sbin’);

    foreach($path as $p) {

        if (@is_executable(“$p/$commandName”)) return “$p/$commandName”;

    }

    return false;

}

//windows系統探測

function sys_windows() {

    if(PHP_VERSION = 5) {

        $obj_locator = new COM(“WbemScripting.SWbemLocator”);

        $wmi = $obj_locator-ConnectServer();

    } else {

        return false;

    }

    //CPU

    $cpuinfo = GetWMI($wmi, “Win32_Processor”, array(“Name”, “L2CacheSize”, “NumberOfCores”));

    $res[‘cpu’][‘num’] = $cpuinfo[0][‘NumberOfCores’];

    if (null == $res[‘cpu’][‘num’]) {

        $res[‘cpu’][‘num’] = 1;

    }

  $res[‘cpu’][‘num_text’] = str_replace(array(1,2,4,8,16), array(‘單’,’雙’,’四’,’八’,’十六’), $res[‘cpu’][‘num’]).’核’;

  /*

    for ($i=0;$i$res[‘cpu’][‘num’];$i++) {

        $res[‘cpu’][‘model’] .= $cpuinfo[0][‘Name’].”br /”;

        $res[‘cpu’][‘cache’] .= $cpuinfo[0][‘L2CacheSize’].”br /”;

    }*/

    $cpuinfo[0][‘L2CacheSize’] = ‘ (‘.$cpuinfo[0][‘L2CacheSize’].’)’;

  $x1 = ($res[‘cpu’][‘num’]==1) ? ” : ‘ ×’.$res[‘cpu’][‘num’];

    $res[‘cpu’][‘model’] = $cpuinfo[0][‘Name’].$cpuinfo[0][‘L2CacheSize’].$x1;

    //SYSINFO

    $sysinfo = GetWMI($wmi, “Win32_OperatingSystem”, array(‘LastBootUpTime’,’TotalVisibleMemorySize’,’FreePhysicalMemory’,’Caption’,’CSDVersion’,’SerialNumber’,’InstallDate’));

    $sysinfo[0][‘Caption’]=iconv(‘GBK’, ‘UTF-8’,$sysinfo[0][‘Caption’]);

    $sysinfo[0][‘CSDVersion’]=iconv(‘GBK’, ‘UTF-8’,$sysinfo[0][‘CSDVersion’]);

    $res[‘win_n’] = $sysinfo[0][‘Caption’].’ ‘.$sysinfo[0][‘CSDVersion’].” 序列號:{$sysinfo[0][‘SerialNumber’]} 於”.date(‘Y年m月d日H:i:s’,strtotime(substr($sysinfo[0][‘InstallDate’],0,14))).”安裝”;

    //UPTIME

    $res[‘uptime’] = $sysinfo[0][‘LastBootUpTime’];

    $sys_ticks = time() – strtotime(substr($res[‘uptime’], 0, 14));

    $min = $sys_ticks / 60;

    $hours = $min / 60;

    $days = floor($hours / 24);

    $hours = floor($hours – ($days * 24));

    $min = floor($min – ($days * 60 * 24) – ($hours * 60));

    if ($days !== 0) $res[‘uptime’] = $days.”天”;

    if ($hours !== 0) $res[‘uptime’] .= $hours.”小時”;

    $res[‘uptime’] .= $min.”分鐘”;

    //MEMORY

    $res[‘mem_total’] = round($sysinfo[0][‘TotalVisibleMemorySize’]/1024,2);

    $res[‘mem_free’] = round($sysinfo[0][‘FreePhysicalMemory’]/1024,2);

    $res[‘mem_used’] = $res[‘mem_total’]-$res[‘mem_free’];    //上面兩行已經除以1024,這行不用再除了

    $res[‘mem_percent’] = round($res[‘mem_used’] / $res[‘mem_total’]*100,2);

    //LoadPercentage

    $loadinfo = GetWMI($wmi, “Win32_Processor”, array(“LoadPercentage”));

    $res[‘load_avg’] = $loadinfo[0][‘LoadPercentage’];

    return $res;

}

function GetWMI($wmi, $strClass, $strValue = array()) {

    $arrData = array();

    $objWEBM = $wmi-Get($strClass);

    $arrProp = $objWEBM-Properties_;

    $arrWEBMCol = $objWEBM-Instances_();

    foreach($arrWEBMCol as $objItem) {

        @reset($arrProp);

        $arrInstance = array();

        foreach($arrProp as $propItem) {

            eval(“\$value = \$objItem-” . $propItem-Name . “;”);

            if (empty($strValue)) {

                $arrInstance[$propItem-Name] = trim($value);

            } else {

                if (in_array($propItem-Name, $strValue)) {

                    $arrInstance[$propItem-Name] = trim($value);

                }

            }

        }

        $arrData[] = $arrInstance;

    }

    return $arrData;

}

//根據操作系統取得CPU相關信息

switch(PHP_OS) {

  case “Linux”:

    $sysReShow = (($sys_info = sys_linux()) !== false) ? “show” : “none”;

    break;

  case “FreeBSD”:

    $sysReShow = (($sys_info = sys_freebsd()) !== false) ? “show” : “none”;

    break;

  case “WINNT”:

    $sysReShow = (($sys_info = sys_windows()) !== false) ? “show” : “none”;

    break;

  default:

    break;

}

?

此PHP類,根據操作系統來進行判斷。

調用?php echo ‘[‘.$sys_info[‘cpu’][‘num_text’].’] ‘.$sys_info[‘cpu’][‘model’]; ?

php_os顯示結果是WINNT 可是我的系統是win 7呀?是怎麼回事?

和你的系統是win 7 還是win 8沒有關係,php環境檢測的時候,微軟的windows系統都是這樣顯示的

只要是windows系統,都是顯示的WINNT

WINNT 表示的是你的系統環境是windows

win 7 表示的是你的系統版本是 windows7

一個是系統環境,一個是系統版本

原創文章,作者:HFOI,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/137816.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
HFOI的頭像HFOI
上一篇 2024-10-04 00:18
下一篇 2024-10-04 00:18

相關推薦

  • 服務器安裝Python的完整指南

    本文將為您提供服務器安裝Python的完整指南。無論您是一位新手還是經驗豐富的開發者,您都可以通過本文輕鬆地完成Python的安裝過程。以下是本文的具體內容: 一、下載Python…

    編程 2025-04-29
  • STUN 服務器

    STUN 服務器是一個網絡服務器,可以協助網絡設備(例如 VoIP 設備)解決 NAT 穿透、防火牆等問題,使得設備可以正常地進行數據傳輸。本文將從多個方面對 STUN 服務器做詳…

    編程 2025-04-29
  • 解決docker-compose 容器時間和服務器時間不同步問題

    docker-compose是一種工具,能夠讓您使用YAML文件來定義和運行多個容器。然而,有時候容器的時間與服務器時間不同步,導致一些不必要的錯誤和麻煩。以下是解決方法的詳細介紹…

    編程 2025-04-29
  • 使用 DRF 實現文件上傳

    文件上傳是 web 應用程序中最常見的需求之一,本文將介紹如何使用 Django Rest Framework (DRF) 來實現文件上傳。通過本文,你將學習到如何使用 DRF 中…

    編程 2025-04-28
  • 如何選擇MySQL服務器文件權限

    MySQL是一種流行的關係型數據庫管理系統。在安裝MySQL時,選擇正確的文件權限是保證安全和性能的重要步驟。以下是一些指導您選擇正確權限的建議。 一、權限選擇 MySQL服務器需…

    編程 2025-04-27
  • 如何將Python代碼部署到服務器

    Python是一種高級編程語言,常被用於數據分析、機器學習、Web開發等不同領域的工作。但是,只有將Python代碼部署到服務器上,才能讓其真正發揮作用。 一、選擇服務器 要將Py…

    編程 2025-04-27
  • Python服務器客戶端

    本文將從以下幾個方面對Python服務器客戶端進行詳細闡述:socket編程、HTTP協議、Web框架、異步IO。 一、socket編程 Python的socket模塊是為網絡編程…

    編程 2025-04-27
  • 如何解決很少人使用台灣服務器的問題

    很少人使用台灣服務器,這是一個比較普遍的問題,但並不難解決。本文將從多個方面進行詳細闡述。 一、認識台灣服務器 台灣服務器是指位於台灣地區的服務器,它與大陸服務器有一定區別。在台灣…

    編程 2025-04-27
  • Python如何放在服務器運行

    Python是一種非常受歡迎的腳本語言,它可以用於Web開發、數據分析、機器學習等不同領域。在服務器端,Python也是一個很好的選擇。本文將介紹Python如何放在服務器上運行,…

    編程 2025-04-27
  • 如何將Linux系統日誌發送到日誌服務器

    本文將介紹如何將Linux系統日誌發送到日誌服務器,以方便管理和監控系統狀態。 一、安裝rsyslog軟件包 rsyslog是Linux系統上默認的系統日誌軟件,用於收集系統事件和…

    編程 2025-04-27

發表回復

登錄後才能評論