PHP

作为web最好的选择

PHP

  • fastAdmin的避坑

    PHP

    一.管理端能访问,用户中心不能访问

    伪静态规则在Apache fastcgi模式下会导致No input file specified.请修改public目录下的.htaccess文件

    默认的

    RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

    修改成

    RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]







    风口下的猪2023-04-17发表在【PHP

    阅读更多
  • fastAdmin本地安装插件避坑

    PHP

    fastAdmin本地安装插件主要有几个注意点:

    1. 安装插件,是上传压缩包(一般上传到addons文件夹中);


    2. 出现无法解压ZIP文件(code:0)  的情况,有可能是

    (1)php没有安装zip、tar等处理压缩文件的扩展

    zip扩展下载地址:https://pecl.php.net/package/zip

    (2)插件压缩包层级问题(要将插件文件夹下的内容全选进行压缩,而不是将插件文件夹压缩)


    3. 出现 请从官网渠道下载插件压缩包(code:2)(code:0)  的情况

    定位到:\vendor\karsonzhang\fastadmin-addons\src\addons\Service.php

    上面文件的 263行:$json = self::sendRequest('/addon/valid', $params, 'POST');

    上面代码是做服务器验证的,直接在其下面新增一行代码:return true;即可



    风口下的猪2023-04-17发表在【PHP

    阅读更多
  • PHP – 如何使用 bcsub() 函数从另一个中减去一个任意精度数?

    PHP

    在 PHP 中,bcsub()数学函数用于从另一个数字中减去一个任意精度的数字。该bcsub()函数将两个任意精度的数字作为字符串,并在将结果缩放到确定的精度后给出两个数字的减法。


    语法

    string bcsub ($num_str1, $num_str2, $scaleVal)

    参数

    该bcsub()数学函数接受三个不同的参数$num_str1,$num_str2 和 $scaleVal。

    $num_str1 -它代表左操作数,它是字符串类型参数。

    $num_str2 -它代表正确的操作数,它是字符串类型参数。

    $scaleVal -它是可选的整数类型参数,用于设置结果输出中小数点后的位数。它默认返回零值。

    返回值

    该bcadd()数学函数返回两数相减$num_str1 和 num_str2,作为一个字符串。


    示例 1 -bcsub()不使用 $scaleVal 参数的 PHP 函数

    <?php
       // 说明 bcadd() 函数的 PHP 程序
       // 使用任意精度的两个输入数字
       $num_string1 = "10.555";
       $num_string2 = "3";
       // 计算添加
       // 两个没有 $scaleVal 参数的数字
       $result = bcsub($num_string1, $num_string2);
       echo "没有 scaleVal 的输出是: ", $result;
    ?>

    输出结果

    没有 scaleVal 的输出是: 7



    如果没有$scaleVal参数,该bcsub()函数会丢弃输出中的小数点。

    示例 2 -bcsub()使用 $scaleVal 参数的 PHP 函数

    在这种情况下,我们将使用scaleVal为 3的相同输入值。因此,输出值将显示小数点后 3 位数字。

    <?php
       // 说明 bcsub() 函数的 PHP 程序
       // 使用任意精度的两个输入数字
       $num_string1 = "10.5552";
       $num_string2 = "3";
       //使用比例值 3
       $scaleVal = 3;
       // 计算添加
       // 两个没有 $scaleVal 参数的数字
       $result = bcsub($num_string1, $num_string2, $scaleVal);
       echo "scaleVal 的输出是: ", $result;
    ?>

    输出结果

    scaleVal 的输出是: 7.555



    风口下的猪2023-03-14发表在【PHP

    阅读更多
  • PHP 的 ::class 用法

    PHP

    自 PHP 5.5 起,关键词 class 也可用于类名的解析。

    使用 ClassName::class 可以获取一个字符串,包含了类 ClassName 的完全限定名称。

    这对使用了命名空间的类尤其有用

    <?php
    namespace my\library\mvc;
    class Dispatcher {}
    print Dispatcher::class; // 会输出 my\library\mvc\Dispatcher
    $disp = new Dispatcher;
    print disp::class; // parse error;语法错误
    // 这种方式只能通过调用静态方法的方式,不能通过类实例化后的对象去调用




    风口下的猪2023-03-14发表在【PHP

    阅读更多
  • Composer安装遇到fileinfo问题,提示Install or enable PHP's fileinfo extension

    PHP

    (1)在面板中软件商店项目php中按装fileinfo扩展

    (2)打开其配置文件php.ini找到extension=fileinfo将前面的分号注释掉,即开启

    (3)如果再运行composer仍然报这个错,直接在宝塔面板composer执行表单中选择执行用户为root来执行



    风口下的猪2022-04-13发表在【PHP

    阅读更多
  • 运行composer 报错:PHP Deprecated: Directive 'track_errors' is deprecated in Unknown on line 0

    PHP

    修改 php.ini track_errors=On 为 track_errors=Off 即可





    风口下的猪2021-12-09发表在【PHP

    阅读更多
  • 在本地没问题,在线上项目显示控制器找不到

    PHP

    风口下的猪2021-11-24发表在【PHP

    阅读更多
  • windows系统下 命令行 php --version 的版本与phpinfo()版本不一致问题

    PHP

    第一 : php --version命令cmd不随wamp中php版本改变而改变的, php命令是随着wamp安装时将:wamp/bin/php/php5.6.25[版本]自动或手动添加到环境变量,

    第二 : wamp中更改php版本无法影响到php的环境变量值

    第三 : 如要在cmd使用php --version其他版本,则在环境变量中添加即可



    风口下的猪2021-10-25发表在【PHP

    阅读更多
  • BOM (byte order mark)

    PHP

    BOM(Byte Order Mark),字节顺序标记,出现在文本文件头部,Unicode编码标准中用于标识文件是采用哪种格式的编码。

    在UCS 编码中有一个叫做 "Zero Width No-Break Space" ,中文译名作“零宽无间断间隔”的字符,它的编码是 FEFF。而 FFFE 在 UCS 中是不存在的字符,所以不应该出现在实际传输中。UCS 规范建议我们在传输字节流前,先传输字符 "Zero Width No-Break Space"。这样如果接收者收到 FEFF,就表明这个字节流是 Big-Endian 的;如果收到FFFE,就表明这个字节流是 Little- Endian 的。因此字符 "Zero Width No-Break Space" (“零宽无间断间隔”)又被称作 BOM。
    UTF-8 不需要 BOM 来表明字节顺序,但可以用 BOM 来表明编码方式。字符 "Zero Width No-Break Space" 的 UTF-8 编码是 EF BB BF。所以如果接收者收到以 EF BB BF 开头的字节流,就知道这是 UTF-8编码了。Windows 就是使用 BOM 来标记文本文件的编码方式的。
    字符U+FEFF如果出现在字节流的开头,则用来标识该字节流的字节序,是高位在前还是低位在前。如果它出现在字节流的中间,则表达零宽度非换行空格的意义,用户看起来就是一个空格。从Unicode3.2开始,U+FEFF只能出现在字节流的开头,只能用于标识字节序,就如它的名称——字节序标记——所表示的一样;除此以外的用法已被舍弃。取而代之的是,使用U+2060来表达零宽度无断空白。
    类似WINDOWS自带的记事本等软件,在保存一个以UTF-8编码的文件时,会在文件开始的地方插入三个不可见的字符(0xEF 0xBB 0xBF,即BOM)。它是一串隐藏的字符,用于让记事本等编辑器识别这个文件是否以UTF-8编码。对于一般的文件,这样并不会产生什么麻烦。但对于 PHP来说,BOM是个大麻烦。
    PHP并不会忽略BOM,所以在读取、包含或者引用这些文件时,会把BOM作为该文件开头正文的一部分。根据嵌入式语言的特点,这串字符将被直接执行(显示)出来。由此造成即使页面的 top padding 设置为0,也无法让整个网页紧贴浏览器顶部,因为在html一开头有这3个字符呢!

    不同编码的字节顺序标记的表示

    编辑
    编码
    表示 (十六进制)
    表示 (十进制)
    EF BB BF
    239 187 191
    UTF-16(大端序)
    FE FF
    254 255
    UTF-16(小端序)
    FF FE
    255 254
    UTF-32(大端序)
    00 00 FE FF
    0 0 254 255
    UTF-32(小端序)
    FF FE 00 00
    255 254 0 0
    2B 2F 76和以下的一个字节:[ 38 | 39 | 2B | 2F ]
    43 47 118和以下的一个字节:[ 56 | 57 | 43 | 47 ]
    en:UTF-1
    F7 64 4C
    247 100 76
    en:UTF-EBCDIC
    DD 73 66 73
    221 115 102 115
    en:Standard Compression Scheme for Unicode
    0E FE FF
    14 254 255
    en:BOCU-1
    FB EE 28及可能跟随着FF
    251 238 40及可能跟随着255
    GB-18030
    84 31 95 33
    132 49 149 51

    utf-8编码总bom在文件头部.占用三个字符.很多都能识别但是php不能识别bom头

    这也是用记事本编辑utf-8编码后执行就会出错的原因了(用xftp直接修改导致错误)

    在服务器根目录下建一个clean.bom文件.浏览器运行一下就可以了.

    一般会出现json.parse报错.错误信息.

    <?php 
    if (isset($_GET['dir'])) { //设置文件目录  
        $basedir = $_GET['dir']; 
    } else { 
        $basedir = '.'; 
    } 
     
    $auto = 1; 
    checkdir($basedir); 
     
    function checkdir($basedir) 
    { 
        if ($dh = opendir($basedir)) { 
            while (($file = readdir($dh)) !== false) { 
                if ($file != '.' && $file != '..') { 
                    if (!is_dir($basedir . "/" . $file)) { 
                        echo "filename: $basedir/$file " . checkBOM("$basedir/$file") . " <br>"; 
                    } else { 
                        $dirname = $basedir . "/" . $file; 
                        checkdir($dirname); 
                    } 
                } 
            } 
            closedir($dh); 
        } 
    } 
    function checkBOM($filename) 
    { 
        global $auto; 
        $contents   = file_get_contents($filename); 
        $charset[1] = substr($contents, 0, 1); 
        $charset[2] = substr($contents, 1, 1); 
        $charset[3] = substr($contents, 2, 1); 
        if (ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191) { 
            if ($auto == 1) { 
                $rest = substr($contents, 3); 
                rewrite($filename, $rest); 
                return ("<font color='red'>BOM found, automatically removed.</font>"); 
            } else { 
                return ("<font color='red'>BOM found.</font>"); 
            } 
        } else
            return ("BOM Not Found."); 
    } 
     
    function rewrite($filename, $data) 
    { 
        $filenum = fopen($filename, "w"); 
        flock($filenum, LOCK_EX); 
        fwrite($filenum, $data); 
        fclose($filenum); 
    } 
    ?>





    风口下的猪2020-08-26发表在【PHP

    阅读更多
  • Using $this when not in object context错误原因及解决办法

    PHP

    风口下的猪2020-07-20发表在【PHP

    阅读更多
  • 软件开发
  • 素质要求
  • 计算机基础
  • 架构
  • 安全
  • 性能
  • 运维
  • 尾页
  • 数据库
  • 开发终端
  • 语言基础
  • 项目管理
  • 产品设计
  • 系统
  • 工作规范
  • 计算机网络
  • 前端技术栈
  • 数据结构
  • 计算机组成原理
  • 后端技术栈
  • 性能优化
  • 安全设计
  • 常见模块
  • 计算机操作系统
  • 服务器
  • python
  • MySQL
  • thinkphp
  • PHP
  • Java
  • JavaScript
  • Windows
  • Linux
  • 特效
  • indexedDB
  • vue
  • 淘宝联盟
  • Ionic
  • Angular
  • 微信小程序
  • 支付宝小程序
  • uni-app
  • css/sass/less
  • 支付
  • socket
  • 爬虫
  • web性能优化
  • 消息推送
  • CVM
  • sqlite
  • Redis
  • 前端基础
  • 基础
  • element
  • Nginx
  • yii2
  • /ponder/index.php/index/catelist/catelist/cateid/10.html

    标签云

    站点信息

    • 文章统计:528篇
    • 移动端访问:扫码进入SQ3R