Windows系统下64位PHP中PHP_INT_MAX为32位BUG,替换strtotime()和date()函数,解决1970年前及2038年后问题
[ 2025-05-14 14:48:55 | 作者: admin ]
p.s.时间戳加到2038-01-19 就不可以往上加了,原因是32位的unix时间戳漏洞,称为Y2K38 漏洞。linux下64位的系统不受此影响。
windows下php7以下版本即使操作系统和php都更新到64位还是有这个问题,为彻底解决需要升级php到7以上版本。
在操作系统和php不升级到64位的前提下,解决办法:
PHP下Unix时间戳与日期互转,代替strtotime()和date()(解决1970年前及2038年后问题,解决32位系统下的int最大长度问题)
阅读全文…
windows下php7以下版本即使操作系统和php都更新到64位还是有这个问题,为彻底解决需要升级php到7以上版本。
在操作系统和php不升级到64位的前提下,解决办法:
PHP下Unix时间戳与日期互转,代替strtotime()和date()(解决1970年前及2038年后问题,解决32位系统下的int最大长度问题)
//这个问题主要在32位的系统下出现,64位的不存在这样的问题。
//php 5.2+提供了DateTime类来处理这样的问题,参考方案如下(请注意时区的处理):
//1、Unix时间戳转日期
...//php 5.2+提供了DateTime类来处理这样的问题,参考方案如下(请注意时区的处理):
//1、Unix时间戳转日期
阅读全文…
一则windows下运行php出现No input file specified 错误处理记录
[ 2025-04-25 10:48:25 | 作者: admin ]
windows服务器为 nginx+fastcgi 的php运行模式,使用winsw-1.18来安装nginx和php fastcgi的,作为服务运行。 http://blog.xg98.com/article.asp?id=2996
搭建环境出现 No input file specified 目录错误的提示
nginx的配置中写为
php.ini中为
可以看到盘符存在大小写的差异,把nginx.conf的root值改为小写 h:/web/blog.xg98.com/wwwroot; 错误消失
搭建环境出现 No input file specified 目录错误的提示
nginx的配置中写为
root H:/web/blog.xg98.com/wwwroot;
php.ini中为
open_basedir = "h:/web/;C:/WINDOWS/TEMP/;"
可以看到盘符存在大小写的差异,把nginx.conf的root值改为小写 h:/web/blog.xg98.com/wwwroot; 错误消失
解决PHP数组排序后,键值丢失的问题
[ 2024-06-07 14:15:19 | 作者: admin ]
array_multisort,可以多个数组同时排序,先保存键值,同时排序后再合并数组可以解决键值丢失问题。
解决array_multisort关联索引不变,但数字键名会被重置问题
阅读全文…
解决array_multisort关联索引不变,但数字键名会被重置问题
$array = [
'2' => [
'title' => 'Flower',
'order' => 3
],
'3' => [
'title' => 'Rock',
'order' => 1
],
'4' => [
'title' => 'Grass',
'order' => 2
]
];
$keys = array_keys($array);
array_multisort(
array_column($array,
...'2' => [
'title' => 'Flower',
'order' => 3
],
'3' => [
'title' => 'Rock',
'order' => 1
],
'4' => [
'title' => 'Grass',
'order' => 2
]
];
$keys = array_keys($array);
array_multisort(
array_column($array,
阅读全文…
Composer,免费的php依赖代码插件库,可以帮助方便下载、更新、使用
[ 2024-06-02 22:06:53 | 作者: admin ]
Composer是什么东西?
Composer是PHP的一个依赖管理工具
它允许我们声明项目所依赖的库称为包或组件,然后它会自动为我们下载和管理这些依赖
下载Composer
检查好环境之后,我们就可以打开以下地址,进入官网进行下载 https://getcomposer.org/
window环境下进行安装所以我们直接点击 Composer-Setup.exe 这个超级链接
检查Composer是否安装成功
在Composer安装的时候,会自动把路径映射到环境变量中
所以我们打开cmd输入Composer如果看到以下信息说明你安装成功了!
Composer代码资源是从哪里来的?
有没有想过在你使用Composer的时候,Composer是从什么地方去获取的这些插件、代码库、模块功能等资源的呢
我们从Composer拉下...
阅读全文…
Composer是PHP的一个依赖管理工具
它允许我们声明项目所依赖的库称为包或组件,然后它会自动为我们下载和管理这些依赖
下载Composer
检查好环境之后,我们就可以打开以下地址,进入官网进行下载 https://getcomposer.org/
window环境下进行安装所以我们直接点击 Composer-Setup.exe 这个超级链接
检查Composer是否安装成功
在Composer安装的时候,会自动把路径映射到环境变量中
所以我们打开cmd输入Composer如果看到以下信息说明你安装成功了!
Composer代码资源是从哪里来的?
有没有想过在你使用Composer的时候,Composer是从什么地方去获取的这些插件、代码库、模块功能等资源的呢
我们从Composer拉下...
阅读全文…
php分割GBK中文生僻字乱码的解决方法,任何低字节是7c的字都会有这个问题
[ 2023-09-06 09:51:55 | 作者: admin ]
php在分割gbk编码格式的中文字符串时,容易出现乱码,应该如何解决这个问题呢?需要的朋友,参考下本文中的介绍吧。
类似如下的字符串(GBK), explode不能得到正确结果: $result = explode("|", "滕华弢|海青");
究其原因, 对于”弢”字(读tao,不认识没关系,我也不认识), 因为他的GBK编码值为: 8f7c, 不巧的是, “|”的ASCII值也是7c.
还有一些类似的问题: 因为GBK编码的编码范围是: 0×8140-0xfefe, 所以, 理论上来说, 任何低字节是7c的字都会有这个问题, 比如: 倈(827c), 億(837c), 眧(b17c), 鍇(e57c).......等等等等
对于这样的情况,
第一, 可以采用转码到utf8, 然后explode, 再转回来, 这是比较麻烦的方法.
第二, 我们可以采用正则拿"匹配出"来代替"分离出": preg_match_all("/([/x81-/xfe]...
阅读全文…
类似如下的字符串(GBK), explode不能得到正确结果: $result = explode("|", "滕华弢|海青");
究其原因, 对于”弢”字(读tao,不认识没关系,我也不认识), 因为他的GBK编码值为: 8f7c, 不巧的是, “|”的ASCII值也是7c.
还有一些类似的问题: 因为GBK编码的编码范围是: 0×8140-0xfefe, 所以, 理论上来说, 任何低字节是7c的字都会有这个问题, 比如: 倈(827c), 億(837c), 眧(b17c), 鍇(e57c).......等等等等
对于这样的情况,
第一, 可以采用转码到utf8, 然后explode, 再转回来, 这是比较麻烦的方法.
第二, 我们可以采用正则拿"匹配出"来代替"分离出": preg_match_all("/([/x81-/xfe]...
阅读全文…
php程序GBK编码下生僻字'碶'等字的处理引起编码乱码问题,生僻字输出带反斜杠
[ 2023-07-26 16:19:26 | 作者: admin ]
p.s. var_export() 可以看到生僻字输出带反斜杠\,平时网页输出看不出来。有一次入库生僻字及其后面乱码,增加一个反斜杠就正常了
工作中发现PHP处理GBK格式的生僻字 ‘碶’ 时会遇到的问题。没能深入研究编码层面的原因。不知道是PHP的bug还是GBK编码的锅。如果有大神发现这篇文章欢迎讨论
//1、直接把‘碶’赋值给变量
$str = '碶';
echo $str;//会报500错误
//2、如果‘碶’字后面随便接一个字符或者汉字则不会报错
$str = '碶大';
echo $str;//输出 碶大
//3、var_export查看结果
var_export($str);//输出 '碶\大'
$str = var_export($str, true);
...
阅读全文…
$str = str_replace("\\","\\\\",$str);
工作中发现PHP处理GBK格式的生僻字 ‘碶’ 时会遇到的问题。没能深入研究编码层面的原因。不知道是PHP的bug还是GBK编码的锅。如果有大神发现这篇文章欢迎讨论
//1、直接把‘碶’赋值给变量
$str = '碶';
echo $str;//会报500错误
//2、如果‘碶’字后面随便接一个字符或者汉字则不会报错
$str = '碶大';
echo $str;//输出 碶大
//3、var_export查看结果
var_export($str);//输出 '碶\大'
$str = var_export($str, true);
...
阅读全文…
fckeditor php 自定义上传目录和上传文件重命名的设置
[ 2023-05-09 16:34:17 | 作者: admin ]
首先:我希望上传的文件根据日期来组织文件夹
请修改editor\editor\filemanager\connectors\php文件夹下的:config.php文件
找到如下的内容:
其次:重命名
请修改该文件夹下的io.php文件
找到: [code][/code]...
阅读全文…
请修改editor\editor\filemanager\connectors\php文件夹下的:config.php文件
找到如下的内容:
// Path to user files relative to the document root.
$Config['UserFilesPath'] =
修改为: $Config['UserFilesPath'] =
// Path to user files relative to the document root.
$Config['UserFilesPath'] = '/uploadfiles/'.date("Ym")."/" ;
这样上传的文件就按照日期存放了。 $Config['UserFilesPath'] = '/uploadfiles/'.date("Ym")."/" ;
其次:重命名
请修改该文件夹下的io.php文件
找到: [code][/code]...
阅读全文…
PHP中的array_shift()函数从数组中删除第一个元素,并返回已删除元素的值。
[ 2023-04-10 13:35:40 | 作者: admin ]
<?php
$products = array("Electronics", "Accessories", "Shoes", "Toys", "Groceries");
$res = array_shift($products); //$res = ‘Electronics’ 注意返回的是删除的那个元素,而数组本身已经被改变
print_r($products);
?>
$products = array("Electronics", "Accessories", "Shoes", "Toys", "Groceries");
$res = array_shift($products); //$res = ‘Electronics’ 注意返回的是删除的那个元素,而数组本身已经被改变
print_r($products);
?>
第一个值“ Electronics”被分配给“ $res”-
Array (
[0] => Accessories
[1] => Shoe
[2] => Toys
[3] => Groceries
)