php 系统函数 记录

PHP intval() 函数

PHP函数介绍---array_key_exists(): 检查数组中是否存在特定键名

如何使用PHP中的parse_url函数解析URL

PHP is_array()函数详解,PHP判断是否为数组

PHP函数介绍:in_array()函数

strpos定义和用法

strpos() 函数查找字符串在另一字符串中第一次出现的位置。

注释:strpos() 函数对大小写敏感。

php 复制代码
    $index_pos = strpos($_SERVER['SCRIPT_NAME'], 'index.php');

_SERVER\['SCRIPT_NAME'\]、_SERVER'SCRIPT_FILENAME'及__FILE__不同

PHP函数介绍:str_replace()

php 服务器变量$_SERVER 服务器环境变量

php 复制代码
// 项目HOST
define('__MY_HOST__', empty($_SERVER['HTTP_HOST']) ? '' : strtolower($_SERVER['HTTP_HOST']));

// 项目HOST地址
define('__MY_DOMAIN__',  empty($_SERVER['HTTP_HOST']) ? '' : __MY_HTTP__.'://'.__MY_HOST__.DS);

// 项目完整HOST地址
define('__MY_URL__',  empty($_SERVER['HTTP_HOST']) ? '' : __MY_DOMAIN__.$my_root);

// 项目public目录URL地址
define('__MY_PUBLIC_URL__',  empty($_SERVER['HTTP_HOST']) ? '' : __MY_HTTP__.'://'.__MY_HOST__.__MY_ROOT_PUBLIC__);

// 当前页面url地址
$request_url = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';
if(!empty($request_url) && !empty($my_root))
{
    // 去除多余的子目录路径
    $request_url = str_replace($my_root, '', $request_url);
}
define('__MY_VIEW_URL__', substr(__MY_URL__, 0, -1).$request_url);

// 系统根目录,强制转换win反斜杠
define('ROOT_PATH', str_replace('\\', DS, dirname(__FILE__)).DS);

// 系统根目录 去除public
define('ROOT', substr(ROOT_PATH, 0, -7));

// 定义应用目录
define('APP_PATH', ROOT.'app'.DS);

// 防止独立入口文件已定义,系统类型 [default] 默认default、可根据终端区分系统类型
if(!defined('SYSTEM_TYPE'))
{
    define('SYSTEM_TYPE', empty($_REQUEST['system_type']) ? 'default' : trim($_REQUEST['system_type']));
}

// 请求应用 [web, app] 默认web(ios|android|小程序 均为app)
define('APPLICATION', empty($_REQUEST['application']) ? 'web' : trim($_REQUEST['application']));

// 请求客户端 [pc, h5, ios, android, alipay, weixin, baidu, toutiao, qq, kuaishou] 默认pc(目前系统为自适应,h5需自行校验)
define('APPLICATION_CLIENT_TYPE', empty($_REQUEST['application_client_type']) ? 'pc' : trim($_REQUEST['application_client_type']));

// 请求客户端手机品牌(调试模式为 devtools)
define('APPLICATION_CLIENT_BRAND', empty($_REQUEST['application_client_brand']) ? '' : trim($_REQUEST['application_client_brand']));

// 是否get
define('IS_GET', isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] == 'GET');

// 是否post
define('IS_POST', isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] == 'POST');

// 是否ajax
define('IS_AJAX', ((isset($_SERVER['HTTP_X_REQUESTED_WITH']) && 'xmlhttprequest' == strtolower($_SERVER['HTTP_X_REQUESTED_WITH'])) || isset($_REQUEST['ajax']) && $_REQUEST['ajax'] == 'ajax'));

// 当前访问脚本名称
$script_name = '';
if(empty($_SERVER['SCRIPT_NAME']))
{
    if(empty($_SERVER['PHP_SELF']))
    {
        if(!empty($_SERVER['SCRIPT_FILENAME']))
        {
            $script_name = $_SERVER['SCRIPT_FILENAME'];
        }
    } else {
        $script_name = $_SERVER['PHP_SELF'];
    }
} else {
    $script_name = $_SERVER['SCRIPT_NAME'];
}
if(!empty($script_name))
{
    $loc = strripos($script_name, '/');
    if($loc !== false)
    {
        $script_name = substr($script_name, $loc+1);
    } 
}
define('SCRIPT_NAME', $script_name);

// 独立域名页面绑定
if(!IS_AJAX)
{
    $domain_file = ROOT.'config'.DS.'domain.php';
    if(file_exists($domain_file))
    {
        $data = include($domain_file);
        if(!empty($data) && !empty($data[__MY_HOST__]))
        {
            $_GET['s'] = $data[__MY_HOST__];
        }
    }
}

// 二级域名页面绑定
if(!IS_AJAX && substr_count(__MY_HOST__, '.') > 1 && !is_numeric(str_replace('.', '', __MY_HOST__)))
{
    $domain_file = ROOT.'config'.DS.'domain.php';
    $second_domain = substr(__MY_HOST__, 0, strpos(__MY_HOST__, '.'));
    if(!empty($second_domain) && file_exists($domain_file) && $second_domain != 'www')
    {
        $data = include($domain_file);
        if(!empty($data) && !empty($data[$second_domain]))
        {
            define('SECOND_DOMAIN', $second_domain);
            $_GET['s'] = $data[$second_domain];
        }
    }
}

// 站点默认首页绑定处理
if(SCRIPT_NAME == 'index.php' && empty($_GET['s']))
{
    $home_file = APP_PATH.'index'.DS.'config'.DS.'home.php';
    if(file_exists($home_file))
    {
        $data = include($home_file);
        if(!empty($data))
        {
            $_GET['s'] = $data;
        }
    }
}

PHP函数介绍---strtolower(): 将字符串转换为小写

PHP字符串处理函数详解:explode()

PHP函数介绍---substr(): 截取字符串的一部分

相关推荐
2601_9620654925 分钟前
PHP For 循环
android·java·php
2601_962065491 小时前
interface GigabitEthernet0/0/0
服务器·php·apache
虎王物联1 小时前
PHP Swoole实现物联网MQTT数据订阅与WebSocket实时推送
物联网·mqtt·websocket·php·swoole
XR12345678814 小时前
办公网自主创新建设怎么选?信创办公场景的选型逻辑
开发语言·php
CRMEB16 小时前
不懂设计也能有精美商城?CRMEB 主题广场与可视化装修的“千店千面“实操
人工智能·ai·小程序·开源·php
梦梦代码精17 小时前
《LikeShop全产品技术硬核拆解:ThinkPHP8+Vue3+UniApp架构,私有化部署与二次开发实战指南》
java·低代码·系统架构·php·开源软件
辛迪聊物业数字化20 小时前
【智能楼宇系统有什么用?赋能园区高效 节能 安全】
经验分享·安全·微信小程序·php
2401_8858850421 小时前
国际语音php接口代码示例:PHP使用cURL快速调用语音发送API
android·开发语言·前端·人工智能·python·php·语音识别
xiaoxiangsiyan1 天前
网络智能化转型核心模块全解析
运维·服务器·网络·数据库·学习·架构·php
huaweichenai1 天前
PHP实现对接MQTT协议
开发语言·php