详细介绍关于PHP脚本运行时系统信息的相关函数
本篇文章给大家详细介绍关于当前PHP脚本运行时系统信息的相关函数。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。
我们的 PHP 在执行的时候,其实可以获取到非常多的当前系统相关的信息。就像很多开源的 CMS 一般会在安装的时候来检测一些环境信息一样,这些信息都是可以方便地动态获取的。
脚本文件运行时的系统用户相关信息
首先,我们来看看获取当前系统相关的一些用户信息。这个用户信息就是我们系统运行 php 脚本时所使用的系统用户。
echo '当前脚本拥有者:' . get_current_user(), PHP_EOL; // 当前脚本拥有者:zhangyue echo '当前脚本属组:' . getmygid(), PHP_EOL; // 当前脚本属组:20 echo '当前脚本的用户属主:' . getmyuid(), PHP_EOL; // 当前脚本的用户属主:501
看出来了嘛?其实这三个函数就是对应的 Linux 中的文件拥有者、所属组,get_current_user() 返回的是用户名,getmyuid() 返回的是用户的 UID ,它们两个是对应的同一个用户。getmygid() 则返回的是当前用户所属的用户组。
获取当前运行脚本的系统相关信息
这一组函数可以让我们获得系统的 innode 信息、当前脚本运行时的 进程ID 、服务接口类型、运行 PHP 的操作系统信息以及资源使用情况。
echo '当前脚本的索引节点:' . getmyinode(), PHP_EOL; // 当前脚本的索引节点:8691989143 echo '当前脚本的进程ID:' . getmypid(), PHP_EOL; // 当前脚本的进程ID:1854 // Nginx:当前脚本的进程ID:711(php-fpm的进程ID) echo "web服务器和PHP之间的接口类型:" . php_sapi_name(), PHP_EOL; // web服务器和PHP之间的接口类型:cli // Nginx:web服务器和PHP之间的接口类型:fpm-fcgi echo "运行 PHP 的系统:" . php_uname("a"), PHP_EOL; // 运行 PHP 的系统: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 "运行PHP的系统:" . PHP_OS, PHP_EOL; // 运行 PHP 的系统:Darwin // 当前脚本的资源使用情况 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() 在使用命令行时返回的是当前执行的 进程ID ,在网页中访问的时候返回的是 PHP-FPM 的 进程ID 。同理,php_sapi_name() 也会根据当前运行的环境返回不同的内容。
php_uname() 默认参数是就 'a' ,意思是返回完整的操作系统信息。它还有其它的参数可以返回单独的不同的信息,或者我们只需要知道当前操作是什么系统时,就直接使用 PHP_OS 常量会更加的方便。
getrusage() 能够返回系统资源的情况,比如 ru_nswap 就是系统当前的 swap 交换区的使用情况,但是这些参数并没有很详细的说明,毕竟这个函数还是使用的比较少的。
获取 PHP 及相关扩展组件的版本信息
echo "当前的PHP版本:" . phpversion(), PHP_EOL; // 当前的PHP版本:7.3.0 echo "当前的PHP版本:" . PHP_VERSION, PHP_EOL; // 当前的PHP版本:7.3.0 echo "当前某个扩展的版本(Swoole):" . phpversion('swoole'), PHP_EOL; // 当前某个扩展的版本(Swoole):4.4.12 echo "当前的PHP的zend引擎版本:" . zend_version(), PHP_EOL; // 当前的PHP的zend引擎版本:3.3.0-dev if (version_compare(PHP_VERSION, '7.0.0') >= 0) { echo '我的版本大于7.0.0,当前版本是:' . PHP_VERSION . "\n"; } else { echo '我的版本还在5,要赶紧升级了,当前版本是:' . PHP_VERSION . "\n"; }
phpversion() 在没有参数的情况下和 PHP_VERSION 常量的效果是一样的,返回的是当前运行的 PHP 的版本号,但是,phpversion() 可以给一个扩展组件名的参数,这样,它就可以返回这个扩展组件的版本号。就像例子中,我们获取了当前环境下 Swoole 的版本号。zend_version() 就是很简单的返回了当前运行环境中的 Zend引擎 版本号。
version_compare() 可以帮助我们方便地进行版本号的对比。它是以逗号进行分隔进行的版本对比,也就是说,我们自己定义的字符串版本号都可以使用它来进行对比。具体的对比规则可以参考官方文档。
当前脚本文件的修改时间及脚本运行时间
echo "当前脚本文件的最后修改时间: " . date("Y-m-d H:i:s.", getlastmod()), PHP_EOL; // 当前脚本文件的最后修改时间: 2020-06-01 08:55:49. // nginx环境下 set_time_limit(84600); // while(1){ // }
getlastmod() 非常简单,就是返回当前运行的这个 PHP 文件最后被修改的时间。而 set_time_limit() 相信大家就不陌生了。在默认情况下,web请求都不会持续很长时间就会主动断开。
比如在 php.ini 文件中,我们默认定义的 max_execution_time 是30秒,当一个请求消耗的时候超过这个时间后,请求就会断开。不过,总会有一些请求是确实需要我们消耗更长的时间来执行的,比如说生成 Excel 之类的文档往往就需要更长的时间。
这个时候,我们就可以使用 set_time_limit() 来设置脚本最大执行时间来延长web请求的执行超时时间。
测试代码:
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
推荐学习:php视频教程
Atas ialah kandungan terperinci 详细介绍关于PHP脚本运行时系统信息的相关函数. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

Tutorial ini menunjukkan cara memproses dokumen XML dengan cekap menggunakan PHP. XML (bahasa markup extensible) adalah bahasa markup berasaskan teks yang serba boleh yang direka untuk pembacaan manusia dan parsing mesin. Ia biasanya digunakan untuk penyimpanan data

Jika anda seorang pembangun PHP yang berpengalaman, anda mungkin merasakan bahawa anda telah berada di sana dan telah melakukannya. Anda telah membangunkan sejumlah besar aplikasi, menyahpenyahpepijat berjuta-juta baris kod dan mengubah suai sekumpulan skrip untuk mencapai op

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Rentetan adalah urutan aksara, termasuk huruf, nombor, dan simbol. Tutorial ini akan mempelajari cara mengira bilangan vokal dalam rentetan yang diberikan dalam PHP menggunakan kaedah yang berbeza. Vokal dalam bahasa Inggeris adalah a, e, i, o, u, dan mereka boleh menjadi huruf besar atau huruf kecil. Apa itu vokal? Vokal adalah watak abjad yang mewakili sebutan tertentu. Terdapat lima vokal dalam bahasa Inggeris, termasuk huruf besar dan huruf kecil: a, e, i, o, u Contoh 1 Input: String = "TutorialSpoint" Output: 6 menjelaskan Vokal dalam rentetan "TutorialSpoint" adalah u, o, i, a, o, i. Terdapat 6 yuan sebanyak 6

Mengikat statik (statik: :) Melaksanakan pengikatan statik lewat (LSB) dalam PHP, yang membolehkan kelas panggilan dirujuk dalam konteks statik dan bukannya menentukan kelas. 1) Proses parsing dilakukan pada masa runtime, 2) Cari kelas panggilan dalam hubungan warisan, 3) ia boleh membawa overhead prestasi.

Apakah kaedah sihir PHP? Kaedah sihir PHP termasuk: 1. \ _ \ _ Membina, digunakan untuk memulakan objek; 2. \ _ \ _ Destruct, digunakan untuk membersihkan sumber; 3. \ _ \ _ Call, mengendalikan panggilan kaedah yang tidak wujud; 4. \ _ \ _ Mendapatkan, melaksanakan akses atribut dinamik; 5. \ _ \ _ Set, melaksanakan tetapan atribut dinamik. Kaedah ini secara automatik dipanggil dalam situasi tertentu, meningkatkan fleksibiliti dan kecekapan kod.
