PHP

(49)

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 = ‘

ubuntu 18.04 安装 php 7.3

``` sudo apt update sudo apt-get install software-properties-common sudo add-apt-repository ppa:ondrej/php sudo apt

PHP 解析 URL 中的查询参数

举个例子,我想用 PHP 从一个给定的 URL 链接中提取查询参数 goods_id 的值。 ## 实现方法 测试用的 PHP 版本:PHP 7.1.20 ``` $product_link = "https://mob