日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > php >内容正文

php

php代码执行相关函数,关于当前PHP脚本运行时系统信息相关函数

發(fā)布時(shí)間:2023/12/19 php 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php代码执行相关函数,关于当前PHP脚本运行时系统信息相关函数 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

關(guān)于當(dāng)前PHP腳本運(yùn)行時(shí)系統(tǒng)信息相關(guān)函數(shù)

我們的 PHP 在執(zhí)行的時(shí)候,其實(shí)可以獲取到非常多的當(dāng)前系統(tǒng)相關(guān)的信息。就像很多開(kāi)源的 CMS 一般會(huì)在安裝的時(shí)候來(lái)檢測(cè)一些環(huán)境信息一樣,這些信息都是可以方便地動(dòng)態(tài)獲取的。

腳本文件運(yùn)行時(shí)的系統(tǒng)用戶相關(guān)信息

首先,我們來(lái)看看獲取當(dāng)前系統(tǒng)相關(guān)的一些用戶信息。這個(gè)用戶信息就是我們系統(tǒng)運(yùn)行 php 腳本時(shí)所使用的系統(tǒng)用戶。

echo?'當(dāng)前腳本擁有者:'?.?get_current_user(),?PHP_EOL;

//?當(dāng)前腳本擁有者:zhangyue

echo?'當(dāng)前腳本屬組:'?.?getmygid(),?PHP_EOL;

//?當(dāng)前腳本屬組:20

echo?'當(dāng)前腳本的用戶屬主:'?.?getmyuid(),?PHP_EOL;

//?當(dāng)前腳本的用戶屬主:501

看出來(lái)了嘛?其實(shí)這三個(gè)函數(shù)就是對(duì)應(yīng)的 Linux 中的文件擁有者、所屬組,get_current_user() 返回的是用戶名,getmyuid() 返回的是用戶的 UID ,它們兩個(gè)是對(duì)應(yīng)的同一個(gè)用戶。getmygid() 則返回的是當(dāng)前用戶所屬的用戶組。

獲取當(dāng)前運(yùn)行腳本的系統(tǒng)相關(guān)信息

這一組函數(shù)可以讓我們獲得系統(tǒng)的 innode 信息、當(dāng)前腳本運(yùn)行時(shí)的 進(jìn)程ID 、服務(wù)接口類型、運(yùn)行 PHP 的操作系統(tǒng)信息以及資源使用情況。

echo?'當(dāng)前腳本的索引節(jié)點(diǎn):'?.?getmyinode(),?PHP_EOL;

//?當(dāng)前腳本的索引節(jié)點(diǎn):8691989143

echo?'當(dāng)前腳本的進(jìn)程ID:'?.?getmypid(),?PHP_EOL;

//?當(dāng)前腳本的進(jìn)程ID:1854

// Nginx:當(dāng)前腳本的進(jìn)程ID:711(php-fpm的進(jìn)程ID)

echo?"web服務(wù)器和PHP之間的接口類型:"?.?php_sapi_name(),?PHP_EOL;

// web服務(wù)器和PHP之間的接口類型:cli

// Nginx:web服務(wù)器和PHP之間的接口類型:fpm-fcgi

echo?"運(yùn)行 PHP 的系統(tǒng):"?.?php_uname("a"),?PHP_EOL;

//?運(yùn)行 PHP 的系統(tǒng):Darwin zhangyuedeMBP 19.4.0 Darwin Kernel Version 19.4.0: Wed Mar 4 22:28:40 PST 2020; root:xnu-6153.101.6~15/RELEASE_X86_64 x86_64

//

echo?"運(yùn)行PHP的系統(tǒng):"?.?PHP_OS,?PHP_EOL;

//?運(yùn)行 PHP 的系統(tǒng):Darwin

//?當(dāng)前腳本的資源使用情況

print_r(getrusage());

//?Array

//?(

//?????[ru_oublock]?=>?0

//?????[ru_inblock]?=>?0

//?????[ru_msgsnd]?=>?0

//?????[ru_msgrcv]?=>?0

//?????[ru_maxrss]?=>?16809984

//?????[ru_ixrss]?=>?0

//?????[ru_idrss]?=>?0

//?????[ru_minflt]?=>?4410

//?????[ru_majflt]?=>?1

//?????[ru_nsignals]?=>?0

//?????[ru_nvcsw]?=>?0

//?????[ru_nivcsw]?=>?86

//?????[ru_nswap]?=>?0

//?????[ru_utime.tv_usec]?=>?41586

//?????[ru_utime.tv_sec]?=>?0

//?????[ru_stime.tv_usec]?=>?41276

//?????[ru_stime.tv_sec]?=>?0

//?)

從注釋中,我們可以看出,getmypid() 在使用命令行時(shí)返回的是當(dāng)前執(zhí)行的 進(jìn)程ID ,在網(wǎng)頁(yè)中訪問(wèn)的時(shí)候返回的是 PHP-FPM 的 進(jìn)程ID 。同理,php_sapi_name() 也會(huì)根據(jù)當(dāng)前運(yùn)行的環(huán)境返回不同的內(nèi)容。

php_uname() 默認(rèn)參數(shù)是就 'a' ,意思是返回完整的操作系統(tǒng)信息。它還有其它的參數(shù)可以返回單獨(dú)的不同的信息,或者我們只需要知道當(dāng)前操作是什么系統(tǒng)時(shí),就直接使用 PHP_OS 常量會(huì)更加的方便。

getrusage() 能夠返回系統(tǒng)資源的情況,比如 ru_nswap 就是系統(tǒng)當(dāng)前的 swap 交換區(qū)的使用情況,但是這些參數(shù)并沒(méi)有很詳細(xì)的說(shuō)明,畢竟這個(gè)函數(shù)還是使用的比較少的。

獲取 PHP 及相關(guān)擴(kuò)展組件的版本信息

echo?"當(dāng)前的PHP版本:"?.?phpversion(),?PHP_EOL;

//?當(dāng)前的PHP版本:7.3.0

echo?"當(dāng)前的PHP版本:"?.?PHP_VERSION,?PHP_EOL;

//?當(dāng)前的PHP版本:7.3.0

echo?"當(dāng)前某個(gè)擴(kuò)展的版本(Swoole):"?.?phpversion('swoole'),?PHP_EOL;

//?當(dāng)前某個(gè)擴(kuò)展的版本(Swoole):4.4.12

echo?"當(dāng)前的PHP的zend引擎版本:"?.?zend_version(),?PHP_EOL;

//?當(dāng)前的PHP的zend引擎版本:3.3.0-dev

if?(version_compare(PHP_VERSION,?'7.0.0')?>=?0)?{

echo?'我的版本大于7.0.0,當(dāng)前版本是:'?.?PHP_VERSION?.?"\n";

}?else?{

echo?'我的版本還在5,要趕緊升級(jí)了,當(dāng)前版本是:'?.?PHP_VERSION?.?"\n";

}

phpversion() 在沒(méi)有參數(shù)的情況下和 PHP_VERSION 常量的效果是一樣的,返回的是當(dāng)前運(yùn)行的 PHP 的版本號(hào),但是,phpversion() 可以給一個(gè)擴(kuò)展組件名的參數(shù),這樣,它就可以返回這個(gè)擴(kuò)展組件的版本號(hào)。就像例子中,我們獲取了當(dāng)前環(huán)境下 Swoole 的版本號(hào)。zend_version() 就是很簡(jiǎn)單的返回了當(dāng)前運(yùn)行環(huán)境中的 Zend引擎 版本號(hào)。

version_compare() 可以幫助我們方便地進(jìn)行版本號(hào)的對(duì)比。它是以逗號(hào)進(jìn)行分隔進(jìn)行的版本對(duì)比,也就是說(shuō),我們自己定義的字符串版本號(hào)都可以使用它來(lái)進(jìn)行對(duì)比。具體的對(duì)比規(guī)則可以參考官方文檔。

當(dāng)前腳本文件的修改時(shí)間及腳本運(yùn)行時(shí)間

echo?"當(dāng)前腳本文件的最后修改時(shí)間:?"?.?date("Y-m-d?H:i:s.",?getlastmod()),?PHP_EOL;

//?當(dāng)前腳本文件的最后修改時(shí)間:2020-06-01 08:55:49.

//?nginx環(huán)境下

set_time_limit(84600);

//?while(1){

//?}

getlastmod() 非常簡(jiǎn)單,就是返回當(dāng)前運(yùn)行的這個(gè) PHP 文件最后被修改的時(shí)間。而 set_time_limit() 相信大家就不陌生了。在默認(rèn)情況下,web請(qǐng)求都不會(huì)持續(xù)很長(zhǎng)時(shí)間就會(huì)主動(dòng)斷開(kāi)。比如在 php.ini 文件中,我們默認(rèn)定義的 max_execution_time 是30秒,當(dāng)一個(gè)請(qǐng)求消耗的時(shí)候超過(guò)這個(gè)時(shí)間后,請(qǐng)求就會(huì)斷開(kāi)。不過(guò),總會(huì)有一些請(qǐng)求是確實(shí)需要我們消耗更長(zhǎng)的時(shí)間來(lái)執(zhí)行的,比如說(shuō)生成 Excel 之類的文檔往往就需要更長(zhǎng)的時(shí)間。這個(gè)時(shí)候,我們就可以使用 set_time_limit() 來(lái)設(shè)置腳本最大執(zhí)行時(shí)間來(lái)延長(zhǎng)web請(qǐng)求的執(zhí)行超時(shí)時(shí)間。

測(cè)試代碼:

https://github.com/zhangyue0503/dev-blog/blob/master/php/202006/source/%E5%85%B3%E4%BA%8E%E5%BD%93%E5%89%8DPHP%E8%84%9A%E6%9C%AC%E8%BF%90%E8%A1%8C%E6%97%B6%E7%B3%BB%E7%BB%9F%E4%BF%A1%E6%81%AF%E7%9B%B8%E5%85%B3%E5%87%BD%E6%95%B0.php

參考文檔:

https://www.php.net/manual/zh/function.get-current-user.php

https://www.php.net/manual/zh/function.getmyuid.php

https://www.php.net/manual/zh/function.getmygid.php

https://www.php.net/manual/zh/function.getmyinode.php

https://www.php.net/manual/zh/function.getmypid.php

https://www.php.net/manual/zh/function.getrusage.php

https://www.php.net/manual/zh/function.php-sapi-name.php

https://www.php.net/manual/zh/function.php-uname.php

https://www.php.net/manual/zh/function.phpversion.php

https://www.php.net/manual/zh/function.set-time-limit.php

https://www.php.net/manual/zh/function.zend-version.php

https://www.php.net/manual/zh/function.getlastmod.php

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的php代码执行相关函数,关于当前PHP脚本运行时系统信息相关函数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 青青操免费在线视频 | 91麻豆影视 | 国产精品中文字幕在线 | 婷婷丁香综合网 | av资源网址 | 婷婷伊人久久 | 久久av一区二区三区漫画 | 亚洲av成人无码网天堂 | 2一3sex性hd | 肉番在线观看 | 91中文字幕在线播放 | 朝桐光av在线 | www免费网站在线观看 | 久久999| 99国产精品久久久久久久成人热 | 国语对白在线观看 | 日日噜噜噜夜夜爽爽狠狠 | 91精品国产91| 亚洲AV无码久久精品浪潮 | 97超碰碰碰| 欧美jizz欧美性大全 | 亚洲中文字幕无码爆乳av | 成人免费视频软件网站 | 中文字幕国产在线观看 | 久久久久久国产精品三级玉女聊斋 | 99久久精品国产一区二区三区 | 久久99精品久久久久 | 亚洲成av人片一区二区梦乃 | 国产一区二区视频在线免费观看 | 欧美午夜精品 | 亚洲精品一区中文字幕乱码 | 一二三在线视频 | 国产蜜臀av一区二区 | 日韩在线精品视频一区二区涩爱 | 亚洲区久久 | 日韩黄视频| 欧美经典一区二区三区 | 老妇荒淫牲艳史 | 少妇精品久久久久久久久久 | 五十路中文字幕 | 日本黄色片一级 | 黄色在线免费观看网站 | 国产操人 | 麻豆精品视频在线 | 亚洲一区二区高清 | 中文字幕视频网 | 亚洲高清不卡 | 青草精品在线 | 少妇人妻偷人精品无码视频 | 国产欧美日韩精品在线观看 | 中文字幕乱码中文乱码b站 国产一区二区三区在线观看视频 | 人人干人人澡 | 青青国产在线观看 | 中文字幕专区 | 国内激情视频 | 黄色伊人网 | 欧美专区一区 | 亚洲av片一区二区三区 | 国产精品一区二区三区四区五区 | 亚洲激情中文 | 色综合av综合无码综合网站 | 可以免费观看的av | 久久久久亚洲av无码专区首jn | 亚洲精品一区二区三区四区乱码 | 韩日一区 | 日本成人一区 | 久久99精品久久久久久琪琪 | 日本中文在线观看 | 91高跟黑色丝袜呻吟在线观看 | 日韩成人欧美 | 黄色大全在线观看 | 公交顶臀绿裙妇女配视频 | 特黄一级视频 | 成年人免费视频网站 | 91视频论坛 | 影音av资源 | 天堂在线国产 | 国产女主播在线播放 | www.青青草.com| 少妇乱淫| 欧美一级淫片bbb一84 | 久久久视频在线观看 | 欧美系列在线观看 | 久久久久亚洲无码 | 免费av软件 | 老头把女人躁得呻吟 | 午夜免费一区二区 | 夜夜操操操 | 性色AV无码久久一区二区三 | 精品久久久久久久久久久国产字幕 | 男生女生插插插 | 中文字幕永久免费 | 精品国精品国产自在久不卡 | 亚洲精品男人天堂 | 国产一区二区精彩视频 | 884aa四虎影成人精品一区 | 女~淫辱の触手3d动漫 | 日本裸体xx少妇18在线 | 欧美极品第一页 |