编码 | 表示 (十六进制) | 表示 (十进制) |
---|---|---|
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 |
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本地安装插件避坑
PHPfastAdmin本地安装插件主要有几个注意点:
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
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
阅读更多风口下的猪2021-10-25发表在【PHP】
-
BOM (byte order mark)
PHPBOM(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个字符呢!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】