PHP环境搭建及API接口实现

环境配置

一键环境PHPStudy

https://www.xp.cn/download.html

同时支持Apache或Nginx做WEB容器

查看PHP环境

1
2
3
<?php
phpinfo();
?>

返回值

字符串

1
2
3
<?php
echo "hello world";
?>

JSON

1
2
3
4
5
6
7
8
9
10
11
<?php
//JSON
header('Content-type: application/json');
$result = [
"code" => 0,
"message" => "success"
];

# 转换为json
echo json_encode($result);
?>

测试

http://127.0.0.1:8080/getdata.php

请求参数

语法

在 PHP 中,可以使用 $_GET$_POST$_REQUEST 来获取请求参数。

以下是介绍它们的一些细节:

$_GET 用于获取通过 URL 传递的参数,一般用于获取请求方式为 GET 的数据。

例如,如果 URL 为

http://127.0.0.1:8080/getdata.php?id=123&name=test

则可以使用 $_GET['id'] 来获取 123,使用 $_GET['name'] 来获取 test。

$_POST 用于获取通过表单提交的数据,一般用于获取请求方式为 POST 的数据。

例如,如果有一个表单提交到 getData.php,其中有一个输入框的 name 属性为 username,则可以使用 $_POST['username'] 来获取该输入框的值。

$_REQUEST 用于获取所有通过 GET 或 POST 请求方式传递的参数,包含了 $_GET$_POST 的所有数据。

但是,由于可能存在安全风险,一般不建议直接使用 $_REQUEST,而是根据请求方式来选择使用 $_GET$_POST

在 PHP 中,可以通过使用 count() 函数来获取请求参数的个数。具体使用方法如下:

如果想获取通过 GET 请求方式传递的参数个数,可以使用 count($_GET)

如果想获取通过 POST 请求方式传递的参数个数,可以使用 count($_POST)

如果想获取所有通过 GET 或 POST 请求方式传递的参数个数,可以使用 count($_REQUEST)

获取参数示例

1
2
3
4
5
6
7
8
9
10
11
<?php
//JSON
header('Content-type: application/json');
$result = [
"id" => $_GET['id'],
"name" => $_GET['name']
];

# 转换为json
echo json_encode($result);
?>

打印请求参数

1
2
3
4
5
6
<?php
//JSON
header('Content-type: application/json');
# 转换为json
echo json_encode($_REQUEST);
?>

日志写入

追加写入

1
2
3
4
// 通过 $_REQUEST 的方式,获取所有被发送到这个页面的数据。
$data = (isset($_REQUEST) && !empty($_REQUEST)) ? $_REQUEST : [];
$logDir = base_path('/storage/') . 'logs/';
file_put_contents($logDir."ruku_paras_log.txt",json_encode($data),FILE_APPEND);

清空写入

1
2
3
4
// 通过 $_REQUEST 的方式,获取所有被发送到这个页面的数据。
$data = (isset($_REQUEST) && !empty($_REQUEST)) ? $_REQUEST : [];
$logDir = base_path('/storage/') . 'logs/';
file_put_contents($logDir."ruku_paras_log.txt",json_encode($data));

写入拼接换行

1
file_put_contents($logDir . "ruku_log.txt", json_encode(DB::getQueryLog()) . PHP_EOL, FILE_APPEND);

输出中文乱码

注意以下两种方式都可以,但是切记不要修改文件本身编码为UTF-8。

1
2
header("Content-Type:text/html;charset=utf8");
echo iconv("GB2312","UTF-8","参数保存成功");

或者

1
2
header("Content-Type:text/html;charset=gb2312");
echo "参数保存成功";

MySQL

MySQL的操作

https://www.psvmc.cn/article/2023-07-10-php-mysql.html