PHP

分类下相关文章

升级 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: ...

阅读全文...

使用 memory_limit 限制 PHP 进程的内存使用

memory_limit 顾名思义,即限制 PHP 进程对于内存的使用。例如: magento2 的系统要求里有关于 PHP memory_limit 的限制,不能低于 512M。(默认值为 128M, 如果不更改,会导致 magento 的后台处理逻辑无法正常执行) 看一下 PHP 官网的解释 This sets the maximum amount of memory in bytes that a script is allowed to allocate. This helps prevent poorly written scripts for eating up all avai ...

阅读全文...

输出 PHP 500 具体错误信息

今天修改 PHP 实现的一个 ajax 接口时,报了 500 错误。虽然可以使用 var_dump / echo 打印日志来判断具体是哪一行报错,但是具体的出错原因依然未知。 找到一个简单的方法,不需要安装 xdebug 就可以看到具体的错误信息。 在对应的 PHP 文件中加入 ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); 再次请求这个报错的接口,就可以看到 error msg 了 <br /> <b>Notice</b&gt ...

阅读全文...

PHP 如何调用其他文件中的函数

绝大部分时候你只需要 require_once require, include, require_once, include_once 让人眼花缭乱,为何 python 中一个 import 可以解决的问题,到了 php 中变得这么复杂? include include 最神奇的地方是,可以引入远程的 php 文件,即 include 一个 URL 地址。我了个去,这种设计的初衷到底是什么?难道用来动态更新配置文件?用 json 接口不是更好。 include_once 有了 include 为何还要 include_once。我完全无法理解 PHP 的世界。。。 include 会带来的问 ...

阅读全文...

PHP 调试技巧之研修

最近调试 ecshop, 越发觉得自己的 PHP 调试技能不足,定位问题效率不够高。所以决定建个专题,把解决问题过程中学到的调试技巧记录一下 var_dump 页面中输出 array 很方便调试。但是,var_dump 的输出是没有排版的,也就是“一行流”,当要查看的信息量很大时,定位是件异常痛苦的事情。例如: $a = array ("laravel", "php", array ("vuejs", "angularjs", "reactjs")); var_dump($a); // 输出结 ...

阅读全文...

php

Hello World 新建一个 index.php 文件 <html> <head> <title>PHP Test</title> </head> <body> <?php echo '<p>Hello World</p>'; ?> </body> </html> 使用 PHP 内置 web server 进行本地开发调试 只需要在代码目录执行 php -S localhost:8000 即可在浏览器里看到首页内容了。参考 Built-in ...

阅读全文...

zend

不得不说,PHP Zend 是第一个让我有阅读障碍的 web 框架。 过于灵活的模板机制,让烂代码肆意滋生 隐蔽的 router 机制, 必须查文档才能理解 获取当前 Zend 版本 新建一个测试文件,version.php <?php echo "Zend engine version: " . zend_version(); ?> 执行 php version.php 即可获知当前 Zend 版本 Zend engine version: 2.3.0 新手学习文档 网上搜了半天没有发现一个好的教程,汗 当然,最好的文档通常是官方文档,根据 Zend 版 ...

阅读全文...