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(): 截取字符串的一部分

相关推荐
两个人的幸福9 天前
Windows 桌面应用自研 PHP 队列(下):完整代码与六大工程化优化
php
BingoGo11 天前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
JaguarJack11 天前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
用户30745969820712 天前
PHP 扩展——从入门到理解
php
鹏仔先生12 天前
拷贝漫画APP下载页PHP程序,后台带免费AI写作
php
云水一下13 天前
从零开始学 PHP 系列(一):PHP 的前世今生与开发环境搭建
开发语言·php
xingpanvip13 天前
星盘接口开发文档:本命盘接口指南
android·开发语言·css·php·lua
酉鬼女又兒13 天前
零基础入门计算机网络运输层:端到端通信核心作用、端口号分类规则、复用分用工作机制及UDP与TCP协议全方位对比详解
网络·网络协议·tcp/ip·计算机网络·考研·udp·php
dog25013 天前
不要再继续优化 TCP
网络协议·tcp/ip·php
Channing Lewis13 天前
PHP 解析 Excel 的那些坑:一次“行号错位”引发的数据丢失
开发语言·php·excel