PHP

(51)

安装最新版本的 composer

用 ubuntu apt 安装的 composer 版本过低,所以不推荐: ``` > sudo apt install composer > composer -V Composer 1.6.3 2018-01-31 16:2

Ubuntu 18.04 安装 PHP 7.4.8

为了测试升级 Laravel 6,所以把本地 Windows WSL Ubuntu18.04 开发环境的 PHP 版本升级一下。实际是全新安装,这个新买的笔记本居然一直没有装 PHP。 ## apt install PHP 7.4

PHP 表达式前加 at 符号 @ 的作用是什么

今天在一段 PHP 代码中看到一个诡异的写法,即在一个变量名的美元符号前加了个 at 符号 @。 ## 官方文档 https://www.php.net/manual/zh/language.operators.errorcontr

PHP 5.3 explode 结果取值报错:syntax error, unexpected '['

今天在线上更新代码后报错: > syntax error, unexpected '[' 报错行是: ``` $category_id = explode("-", $category_id)[0]; ``` #

php foreach 数组添加新属性

之前没注意这个问题,今天发现通过 foreach 遍历数组时,新增的属性并没有添加到数组中。 ``` foreach ($tags as $tag) { $tag["name"] = "new name"; } ```

PHP 发送 HTTP 请求

在不使用三方库的情况下,例如 guzzle,PHP 发送 HTTP 请求。 ## 方法一 curl ``` $url = "https://api.domain.com/test"; $ch = curl_init(); $t

PHP 分割字符串时指定多个分隔符

在使用 PHP Laravel 实现博客文章打多标签的功能,输入时标签以英文逗号为分隔符。 但是 PHP 的字符串分割函数 explode 只支持单个分隔符: ``` $tags = explode(",", $tags_st

PHP 获取请求的域名及协议

实在不想查看 ThinkPHP 的文档,所以就使用纯 PHP 的实现,获取请求的域名及协议。 ``` function site_url() { $protocol = (!empty($_SERVER['HTTPS']) &&

重定向跳转引起的 PHP $_Post 和 php://input 数据为空

今天在 ThinkPHP 下测试获取 HTTP 请求 POST 数据时,发现无论怎么测试,都获取不到 POST 的数据。 - $_POST 为空 - php://input 也为空 但是在另外一台服务器上测试,却是正常可以获

PHP 7.1 报错:Cannot use string offset as an array

有一段在 PHP 5 下运行正常的代码,放到了 PHP 7.1 环境下执行报错。 报错信息为: > Cannot use string offset as an array ## 代码片段 ``` $data = ‘