php官方的超全局变量$_SERVER['PHP_SELF']也能直接获取,只不过如果url参数太多也会获取。
下面提供一个方法获取
/*
* 获取当前PHP文件名称
*/
if (!function_exists('phpself')) {
function phpself()
{
$phpself = $_SERVER['PHP_SELF'];
$_patten = '/(\/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*.php)/';
if(preg_match($_patten,$phpself,$result))
{
$phpself = $result['1'];
}
return $phpself;
}
}以上代码输出
phpself() // /index.php
如果你只是需要index.php不需要/index.php,将正则修改为
$_patten = '/(\[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*.php)/';
通过http推送消息给socket,socket服务再向客户端推送<?php /* * Socket推送 * 请用守护进程方式启动php msgservice.php & (socket只...
上篇文章已经讲解arrayacces的原理,现在来讲解下arrayaccess的实际应用。一个大型的互联网项目中必然会存在各种配置信息,例如多种数据库信息:mysql,tidb,mongodb,redis,某个业务模块单独的配置信息如比例,额度等等,那么该如何治理配置信息?PHP项目中大部分的框架都...
ThinkPHP中有一个debug调试功能,能输出报错文件的信息,并能看到这个函数被哪些函数调用,从框架的启动开始记录,特别方便调试。于是研究了下它的底层给予了实现。<?php //--框架核心--Start //框架内置错误处理 function errDealWith($er...
(1)swoole启动的主进程是master进程负责全局管理,然后master进程会再fork一个manager进程。(2)manager进程开始统一管理进程创建回收管理。(3)manager进程根据设置的worker_num和task_worker_num来创建work进程和task进程因此启动s...
<?php /** * @throws Exception */ function curl() { throw new \Exception('err...
在使用ftok生成ipc进程通信key尝试将第二个参数项目标识符传入字符串报错:PHP Warning: ftok(): Project identifier is invalid,查阅资料发现第二个字符串只能是1个字符串,长度为1....