php函数解释之define('S_ROOT', dirname(__FILE__).DIRECTORY_SEPARATOR)

PHP初始化配置
本文介绍了PHP脚本中常见的初始化配置过程,包括全局变量声明、常量定义及错误处理等。涉及的关键概念有$_SGLOBAL等预定义数组的作用、跨平台路径处理、条件包含文件和HTTP重定向。

php代码解释(基本一句也不懂)

$_SGLOBAL = $_SCONFIG = $_SBLOCK = $_TPL = $_SCOOKIE = $_SN = $space = array();
//程序目录
define('S_ROOT', dirname(__FILE__).DIRECTORY_SEPARATOR);
//基本文件
if(!@include_once(S_ROOT.'./config.php'))
 {
  
header("Location: install/index.php");
  
//安装 
  exit();
}

问题补充:

$_SGLOBAL = array();$_SCONFIG = array();第一个是申明一个 全局 变量数组? 第二个 什么用啊 第三个呢 ? 申明的这些东西什么用啊 ? 我主要想问问这个 呵呵

 

1.这是一个申明,跟$_SGLOBAL = array();$_SCONFIG = array();.....$space = array();一样;

2.定义一个常量S_ROOT; 只不过定义的过程中有用到了另外的两个常量__FILE__和DIRECTORY_SEPARATOR以及另外一个函数dirname();__FILE__表示当前文件,通过dirname(__FILE__)获取当前文件的所在目录的绝对路径比如: windows下的d:\html\;linux下的:/var/www/html/; 而DIRECTORY_SEPARATOR这个常量顾名思义就是一个分隔符号,在windows下是"\"在linux(unix)下就是"/"-----这么写,而不是硬编码为"\"或者"/" 的好处就是为了跨平台..

3.!是一个逻辑运算符号--取反;
@加在函数前面表示:忽略函数调用过程中的错误!
include_once()是将文件显式的包含进来.
header()函数用要发送http响应消息!
exit();退出脚本执行.

转载于:https://www.cnblogs.com/qiantuwuliang/archive/2009/11/12/1602019.html

启动代码: <?php // 设置工作目录到项目根目录 chdir(dirname(__DIR__)); // 定义必要的常量 if (!defined('DS')) define('DS', DIRECTORY_SEPARATOR); if (!defined('ROOT_PATH')) define('ROOT_PATH', dirname(__DIR__) . DS); if (!defined('APP_PATH')) define('APP_PATH', ROOT_PATH . 'application' . DS); if (!defined('RUNTIME_PATH')) define('RUNTIME_PATH', ROOT_PATH . 'runtime' . DS); // 防止重复加载 Composer 自动加载文件 if (!class_exists('Composer\Autoload\ClassLoader', false)) { require ROOT_PATH . 'vendor/autoload.php'; } // 加载框架基础文件 require ROOT_PATH . 'thinkphp/base.php'; // 手动加载应用函数文件 if (file_exists(APP_PATH . 'common.php')) { require_once APP_PATH . 'common.php'; } // 设置错误报告级别 error_reporting(E_ALL); ini_set('display_errors', '1'); // 注册自动加载 \think\Loader::register(); // 手动加载采集服务类 require_once APP_PATH . 'caiji/CaijiScheduler.php'; require_once APP_PATH . 'caiji/CaijiWorker.php'; try { // 记录启动日志 file_put_contents(RUNTIME_PATH . 'caiji_start.log', date('[Y-m-d H:i:s]') . " 采集服务启动\n", FILE_APPEND); // 创建锁文件 $lockFile = RUNTIME_PATH . 'caiji.lock'; if (file_exists($lockFile)) { exit("采集进程已在运行中\n"); } file_put_contents($lockFile, getmypid()); // 注册关闭函数 register_shutdown_function(function() use ($lockFile) { if (file_exists($lockFile)) { unlink($lockFile); } }); // 启动调度器 $scheduler = new app\caiji\CaijiScheduler(); $scheduler->start(); // 启动Worker $worker = new app\caiji\CaijiWorker(); $worker->start(); } catch (\Throwable $e) { $error = date('[Y-m-d H:i:s]') . " 错误: " . $e->getMessage() . "\n"; $error .= "追踪: " . $e->getTraceAsString() . "\n"; file_put_contents(RUNTIME_PATH . 'caiji_error.log', $error, FILE_APPEND); exit(1); }
最新发布
05-30
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值