이 글에서는 현재 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은 시스템의 스왑 영역의 현재 사용량이지만 이러한 매개변수는 자세히 설명되지 않습니다. 결국 이 함수는 여전히 비교적 드물게 사용됩니다. .
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 상수와 동일한 효과를 가집니다. 그러나 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()는 모두가 잘 알고 있을 거라 믿습니다. 기본적으로 웹 요청은 연결이 끊어지기 전까지 오랫동안 지속되지 않습니다.
예를 들어 php.ini 파일에서 기본적으로 정의하는 max_execution_time은 30초입니다. 요청이 이 시간을 초과하면 요청 연결이 끊어집니다. 그러나 실행하는 데 시간이 오래 걸리는 요청이 항상 있습니다. 예를 들어 Excel과 같은 문서를 생성하는 데 시간이 더 오래 걸리는 경우가 많습니다.
이때 set_time_limit()를 사용하여 스크립트의 최대 실행 시간을 설정하여 웹 요청의 실행 시간 제한을 연장할 수 있습니다.
테스트 코드:
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 비디오 튜토리얼
위 내용은 PHP 스크립트 실행 시 시스템 정보 관련 기능에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

在PHP中,可以利用implode()函数的第一个参数来设置没有分隔符,该函数的第一个参数用于规定数组元素之间放置的内容,默认是空字符串,也可将第一个参数设置为空,语法为“implode(数组)”或者“implode("",数组)”。


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

드림위버 CS6
시각적 웹 개발 도구

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.
