PHP

分类下相关文章

PHP 日期时间类 Carbon 的常见用法

Carbon 继承了 PHP DateTime 类,所以 DateTime 类的方法同样适用于 Carbon 类。 初始化一个日期 use Carbon\Carbon; $today = new Carbon('2018-08-01'); 本月第一天,上月第一天 $first_day = new Carbon('first day of this month'); $first_day = new Carbon('first day of last month'); return $month->format('Y-m'); // 2018-08 今日日期 echo Carbo ...

阅读全文...

PHP FPM status page

PHP FPM status page 用于查看 PHP FPM 进程池状态。 php7.0 的配置方法 首先配置 Nginx 的页面路径 location /status { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass unix:/run/php/php7.0-fpm.sock; log_not_found off; } 再修改 www.conf 文件 /etc/php/7.0/fpm/po ...

阅读全文...

composer 安装依赖缓慢,查看 composer 的详细执行日志

在 windows WSL 上安装 composer 依赖 composer install 发现执行异常缓慢,怀疑没有走国内的镜像,而是直接访问的 github。 需要能看到 composer 的执行日志 composer -h 发现 composer 的参数支持 -v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug 于是 composer -vvv install 果然,都是走 ...

阅读全文...

PHP: POST Content-Length of xxx bytes exceeds the limit of 8388608 bytes

用户上传了 4 个附件,每个小于 5M,但是总大小超过了 15 M。 在 Nginx 日志中找到了如下错误信息,还没有到 Laravel 日志那一层。 2018/08/13 10:14:38 [error] 8326#8326: *11432788 FastCGI sent in stderr: "PHP message: PHP Warning: POST Content-Length of 14424838 bytes exceeds the limit of 8388608 bytes in Unknown on line 0" while reading res ...

阅读全文...

解决 composer 安装 phpunit 失败问题

$ composer require --dev phpunit/phpunit Using version ^7.2 for phpunit/phpunit ./composer.json has been updated ...

阅读全文...

对以内部 git 仓库为 composer 依赖的 package,加上版本号

现实问题 之前同事做了一个 composer package,做为公司大量 laravel 项目的通用模块。 但是,在实际使用中,每个项目对改 package 的依赖版本是有所不同的。否则 composer update 会默认拉取最新的 dev-master 中的代码。 术语 VCS Version control systems (VCS) composer 依赖的 package 版本号来自哪里 实际上就是 VCS 中的版本号,例如,git 打的 version tag。 $ git tag v1.0 v1.0.1 v1.0.2 composer 在识别 version 的时候,会自动 ...

阅读全文...

PHP 中 Error 与 Exception 的区别,及如何捕获

写了一段 JSON 解析的代码,由于数据源不能保证一定是 JSON,所以解析可能失败。 但是 PHP 的 json_decode 遇到无法解析的字符串,是不报错的,会直接返回空。而即使能解析出来,我也不太敢相信里面的字段是始终一致的。所以,不但需要判断能否解析成 JSON,还要判断字段是否缺少。出于偷懒的考虑,我想只捕获异常就好了,例如要捕获 Trying to get property of non-object 但是,下面的 try catch 怎么也捕获不到异常 try { // Code that may throw an Exception or Error. } cat ...

阅读全文...

Ubuntu 18.04 安装 PHP 7.1

sudo apt-get install software-properties-common sudo add-apt-repository ppa:ondrej/php sudo apt update sudo apt install php7.1-fpm php7.1-mcrypt php7.1-cli php7.1-xml php7.1-mysql php7.1-gd php7.1-imagick php7.1-recode php7.1-tidy php7.1-xmlrpc php7.0-mbstring php7.1-curl 确认安装成功 php -v PHP 7.1.17-1 ...

阅读全文...

升级 php composer 版本

在执行 composer update 时,报错 You made a reference to a non-existent script @php artisan package:discover 网上说是 composer 的版本太低,查看了一下当前安装的版本 composer -V Composer version 1.2.1 2016-09-12 11:27:19 解决方法,升级 composer 版本 composer selfupdate Updating to version 1.6.3 (stable channel). Downloading: 100% ...

阅读全文...

PHP 将数组的值赋值给一组变量

经常需要将一个字符串分割成一组值,然后赋值给不同的变量。 逐行赋值非常繁琐,于是查了一下 PHP 中是否有类似 python 中 a, b = (a, b) 的操作。 果然有 $info = array('coffee', 'brown', 'caffeine'); list($drink, $color, $power) = $info; echo "$drink is $color and $power makes it special.\n"; list 这个关键字,是专门为这个操作而生的。 可以忽略一个值。 list($drink, , $power) = $in ...

阅读全文...

PHP 日期时间处理汇总

解析字符串中的日期 $date = DateTime::createFromFormat('j-M-Y', '15-Feb-2009'); echo $date->format('Y-m-d'); ...

阅读全文...

Mac OS PHP 版本升级 5.6 to 7.0

我的 Mac 上一直用的是 PHP 5.6,但是 Laravel 5.5 项目依赖于 PHP 7.0 以上。所以,本地的开发环境首先需要更新 PHP 的版本。 几个可选方案 homebrew 升级 php。我很忌惮 homebrew 这货,因为我不知道他在干啥,而且每次运行都会风扇狂转。 valet 看上去除了 tunnel 功能之外,跟 artisan serve 没有区别。而且也要使用 homebrew 升级 vagrant 安装一次太麻烦了。但是至少不用更新本地系统的 PHP 版本。然而 php 5.6 对我来说也没啥用。 phpbrew 管理 PHP 多版本。而我实际上只使用 php ...

阅读全文...

requires php ~7.1 -> your PHP version (7.0.18) does not satisfy that requirement

一个大兄弟本地用了 PHP 7.1 进行开发,而我本地是 PHP 7.0, 于是悲剧发生了。 composer install 之后报错 Loading composer repositories with package information Installing dependencies (including require-dev) from lock file Your requirements could not be resolved to an installable set of packages. Problem 1 - Installation reques ...

阅读全文...

PHP Composer 将指定依赖包版本降级

例如,我之前安装的是 laravel-permission (2.6.0) 但是我想降级到 1.4.0 版本 直接修改 composer.json 文件,并没有效果。 执行命令即可 composer require "spatie/laravel-permission:1.4" - Removing spatie/laravel-permission (2.6.0) - Installing spatie/laravel-permission (1.4.0) Downloading: 100% ...

阅读全文...

The StyleCI analysis has failed - PHP 语法检查

今天给一个 PHP 开源项目 pull request 的时候,发现 github 的代码自动检测提示我的代码有问题 The StyleCI analysis has failed 具体的错误分析 第一处:我猜测是双引号的问题 - 'delete_cancel_title' => "放心吧", + 'delete_cancel_title' => '放心吧', Laravel-Backpack/CRUD 项目根目录下有个 .styleci.yml 文件 里面只有一行配置 preset: ...

阅读全文...

近期节日

2018年09月22日 世界无车日
2018年09月23日 秋分
2018年09月23日 国际聋人节
2018年09月24日 中秋节
2018年09月27日 世界旅游日
2018年10月01日 国庆节
2018年10月04日 世界动物日
2018年10月08日 寒露
2018年10月09日 世界邮政日
2018年10月10日 辛亥革命纪念日
2018年10月13日 中国少年先锋队诞辰日
2018年10月14日 世界标准日
查看更多节日