服务端(PHP)函数_核心库函数
文档概述
轻语言网站**后端(PHP)**开发中的核心库内置函数、用于处理HTTP请求、响应、服务器信息、JSON数据等核心功能,包含请求处理、响应发送、服务器信息获取、JSON编解码、客户端IP获取、会话管理、全局变量、模块引用等功能,常用于API开发、服务器交互、数据处理等场景。
⚠️ 使用限制说明:
- 本文档内函数仅限在轻语言后端文件
.sph代码中使用,用于编写服务端逻辑(编译后输出为 PHP 代码在服务器执行)。- 不得在编写前端页面
.spl代码中使用,更禁止与 JS 代码混合使用。- 编写前端请使用
前端(JavaScript)函数_*类目下的中文函数;服务端只能使用服务端(PHP)函数_*类目下的中文函数。- 前后端虽存在同名函数(如
JSON编码、JSON解码、为空),但底层实现与运行环境完全不同,严禁混用。
💡 PHP 原生英文函数使用说明:
- 轻语言后端支持直接调用 PHP 原生英文函数(如
print_r()、count()、json_encode()、curl_init()等)。- 当遇到轻语言未封装中文函数、但 PHP 原生函数可用时,可直接使用原生英文函数。
- 仅支持使用原生英文函数名,严禁使用 PHP 原生语法格式和英文关键字(如
if(){}、for(){}、function、class、echo等控制结构与语法关键字)。- 控制结构必须使用轻语言中文关键字:
如果...否则...结束 如果、变量循环...结束循环、函数 ... 结束 函数等。- 注:
->(对象方法调用)、=>(数组键值分隔)为轻语言本身支持的语法符号,可正常使用。
PHP 核心库相关特性:
- 请求处理:
取请求值基于 PHP$_GET/$_POST/$_REQUEST;取请求流基于php://input接收原生流数据 - 服务器信息:
取服务信息对应 PHP$_SERVER,可获取请求URI、用户代理、主机名等 - 会话凭证:
启用会话凭证/置会话凭证/取会话凭证/销毁会话凭证对应 PHPsession_start/$_SESSION/session_destroy - JSON处理:
JSON编码/JSON解码对应 PHPjson_encode/json_decode;前端用JSON编码/JSON解析 - 全局变量:
置全局变量/取全局变量跨文件共享数据,基于 PHPGLOBALS - HTTP请求:
发送GET请求/发送POST请求对应 PHPcURL,支持自定义超时和协议头 - 响应头:
置响应头必须在任何输出前调用,否则报错;对应 PHPheader() - 格式化输出:
格式化内容输出带状态码的JSON字符串,便于前端判断请求状态
函数:取请求值(参数名)
获取前端提交请求时传递的值。
' 获取所有请求参数
变量 所有参数 = 取请求值("")
输出数组(所有参数)
' 获取特定参数值
变量 用户名 = 取请求值("username")
变量 密码 = 取请求值("password")
输出 "用户名: " + 用户名
输出 "密码: " + 密码
函数:取请求流()
获取前端提交请求时传递的原生流数据;例如:前端提交的JSON字符串。
' 获取前端提交的JSON数据
变量 原始数据 = 取请求流()
输出 "原始数据: " + 原始数据
' 解析JSON数据
变量 JSON对象 = JSON解码(原始数据)
输出数组(JSON对象)
函数:取请求方式()
获取前端提交请求的方式;GET、POST。
' 获取当前请求方式
变量 请求方式 = 取请求方式()
如果(请求方式 == "GET")
输出 "这是一个GET请求"
否则 如果(请求方式 == "POST")
输出 "这是一个POST请求"
否则
输出 "请求方式: " + 请求方式
结束 如果
函数:取服务信息(字段名)
获取PHP原生“$_SERVER”中的值,参数字段名称若为空则返回全部信息值,不为空则返回指定信息值。
' 获取所有服务器信息
变量 所有信息 = 取服务信息("")
输出数组(所有信息)
' 获取特定服务器信息
变量 请求URI = 取服务信息("REQUEST_URI")
变量 用户代理 = 取服务信息("HTTP_USER_AGENT")
输出 "请求URI: " + 请求URI
输出 "用户代理: " + 用户代理
函数:发送GET请求(地址,超时,协议头)
向指定地址提交GET请求以获取数据。
' 发送GET请求获取数据
变量 API地址 = "https://api.example.com/data"
变量 响应 = 发送GET请求(API地址, 30, [])
输出 "API响应: " + 响应
' 带自定义协议头的GET请求
变量 协议头 = ["Authorization": "Bearer token123", "Content-Type": "application/json"]
变量 响应2 = 发送GET请求("https://api.example.com/secure-data", 30, 协议头)
输出 "安全API响应: " + 响应2
函数:发送POST请求(地址,数据,超时,协议头)
向指定地址提交POST请求、并发送数据。
' 发送POST请求提交数据
变量 API地址 = "https://api.example.com/users"
变量 提交数据 = "{\"name\": \"张三\", \"email\": \"zhangsan@example.com\"}"
变量 响应 = 发送POST请求(API地址, 提交数据, 30, ["Content-Type": "application/json"])
输出 "POST响应: " + 响应
' 发送表单数据
变量 表单数据 = "username=admin&password=123456"
变量 响应2 = 发送POST请求("https://api.example.com/login", 表单数据, 30, ["Content-Type": "application/x-www-form-urlencoded"])
输出 "登录响应: " + 响应2
函数:取客户IP()
获取当前请求的客户端IP地址。
' 获取客户端IP地址
变量 客户IP = 取客户IP()
输出 "客户端IP: " + 客户IP
' 记录访问日志
变量 日志内容 = "访问时间: " + 格式化时间("Y-m-d H:i:s", 取现行时间戳()) + ", IP: " + 客户IP
输出 日志内容
函数:JSON编码(数组)
将指定数组对象编码并转换为JSON字符串。
' 将数组编码为JSON字符串
变量 用户信息 = ["姓名": "李四", "年龄": 25, "城市": "北京"]
变量 JSON字符串 = JSON编码(用户信息)
输出 "JSON字符串: " + JSON字符串
' 编码复杂数据结构
变量 响应数据 = ["code": 200, "msg": "success", "data": 用户信息]
变量 响应JSON = JSON编码(响应数据)
输出 "响应JSON: " + 响应JSON
函数:JSON解码(JSON文本)
将指定JSON字符串解码为JSON对象。
' 将JSON字符串解码为对象
变量 JSON文本 = "{\"姓名\": \"王五\", \"年龄\": 30, \"职业\": \"工程师\"}"
变量 解码对象 = JSON解码(JSON文本)
输出数组(解码对象)
' 访问解码后的数据
输出 "姓名: " + 解码对象["姓名"]
输出 "年龄: " + 解码对象["年龄"]
函数:取上传文件(字段名)
获取上传的指定参数名称的文件;如果参数为空字符串、则获取所有上传信息。
' 获取所有上传文件信息
变量 所有文件 = 取上传文件("")
输出数组(所有文件)
' 获取特定字段的上传文件
变量 头像文件 = 取上传文件("avatar")
如果(头像文件 != 空)
输出 "文件名: " + 头像文件["name"]
输出 "文件大小: " + 头像文件["size"]
输出 "文件类型: " + 头像文件["type"]
否则
输出 "没有上传头像文件"
结束 如果
函数:取上传文件临时路径(文件名称)
获取接收到从前端上传的文件的临时路径。
' 获取上传文件的临时路径
变量 临时路径 = 取上传文件临时路径("avatar")
输出 "临时路径: " + 临时路径
' 移动上传文件到指定位置
如果(临时路径 != "")
变量 目标路径 = "./uploads/" + 取现行时间戳() + ".jpg"
移动上传文件(临时路径, 目标路径)
输出 "文件已保存到: " + 目标路径
结束 如果
函数:置全局变量(名称,值)
设置全局变量;可在整个程序中跨文件使用。
' 设置全局变量
置全局变量("网站标题", "我的网站")
置全局变量("管理员邮箱", "admin@example.com")
置全局变量("网站版本", "1.0.0")
' 设置全局数组
变量 配置数组 = ["数据库主机": "localhost", "数据库端口": 3306]
置全局变量("系统配置", 配置数组)
函数:取全局变量(名称)
获取设置的全局变量。
' 获取全局变量
变量 网站标题 = 取全局变量("网站标题")
变量 管理员邮箱 = 取全局变量("管理员邮箱")
输出 "网站标题: " + 网站标题
输出 "管理员邮箱: " + 管理员邮箱
' 获取全局数组
变量 系统配置 = 取全局变量("系统配置")
输出数组(系统配置)
函数:启用会话凭证()
开启会话凭证(SESSION);使用凭证必须先开启该功能。
' 启用会话功能
启用会话凭证()
' 在启用会话后设置会话数据
置会话凭证("用户名", "张三")
置会话凭证("登录时间", 取现行时间戳())
函数:销毁会话凭证()
销毁当前已经开启的所有会话凭证(SESSION),并同时销毁设置的所有凭证数据。
' 用户退出时销毁会话
输出 "用户正在退出..."
销毁会话凭证()
输出 "会话已销毁,用户已退出"
函数:置会话凭证(键名,值)
设置当前连接域的会话凭证;一般可用于保存登录信息,及判断登录状态。
' 用户登录后设置会话
启用会话凭证()
置会话凭证("用户ID", 12345)
置会话凭证("用户名", "admin")
置会话凭证("登录状态", "已登录")
置会话凭证("登录时间", 格式化时间("Y-m-d H:i:s", 取现行时间戳()))
输出 "用户登录信息已保存到会话"
函数:取会话凭证(键名)
获取当前连接域保存的会话凭证信息。
' 获取会话中的用户信息
启用会话凭证()
变量 用户名 = 取会话凭证("用户名")
变量 登录状态 = 取会话凭证("登录状态")
如果(登录状态 == "已登录")
输出 "欢迎, " + 用户名 + "!"
否则
输出 "请先登录"
结束 如果
' 检查登录时间
变量 登录时间 = 取会话凭证("登录时间")
输出 "登录时间: " + 登录时间
函数:为空(变量名)
检测指定变量是否为一个空值或空对象;为空返回真;否则返回假。
' 检测变量是否为空
变量 空变量 = ""
变量 非空变量 = "Hello"
变量 空数组 = []
如果(为空(空变量))
输出 "空变量确实为空"
结束 如果
如果(!为空(非空变量))
输出 "非空变量不为空: " + 非空变量
结束 如果
如果(为空(空数组))
输出 "空数组为空"
结束 如果
函数:格式化内容(状态码,数据值)
格式化输出带状态码的JSON字符串,状态码可自定义任何整数值,一般用于在前端判断状态。
' 格式化成功响应
变量 成功响应 = 格式化内容(200, "操作成功")
输出 成功响应
' 格式化失败响应
变量 失败响应 = 格式化内容(404, "资源未找到")
输出 失败响应
' 格式化带数据的响应
变量 数据响应 = 格式化内容(200, ["用户ID"=>123, "用户名"=>"张三"])
输出 数据响应
函数:引用模块(模块文件名)
引入并使用指定模块文件,参数为不含后缀的模块文件名称。
' 引用自定义模块
变量 模块加载结果 = 引用模块("user_module")
如果(模块加载结果)
输出 "模块加载成功"
' 使用模块中的函数
变量 用户信息 = 获取用户信息(123)
输出数组(用户信息)
否则
输出 "模块加载失败"
结束 如果
函数:生成验证码(目标内容,宽度,高度)
根据指定内容绘制验证码图片并返回图片流对象,前端使用图片框(地址)接收。
' 生成4位数字验证码
变量 验证码内容 = "1234"
生成验证码(验证码内容, 120, 40)
' 生成字母数字混合验证码
变量 随机验证码 = "A7k9"
生成验证码(随机验证码, 150, 50)
函数:输出数组(待输出数组)
向前端输出数组内容。
' 输出简单数组
变量 简单数组 = ["苹果", "香蕉", "橙子"]
输出数组(简单数组)
' 输出关联数组
变量 用户信息 = ["姓名"=>"张三", "年龄"=>25, "城市"=>"上海"]
输出数组(用户信息)
函数:置响应头(值)
向客户端(浏览器)发送原始的 HTTP 响应头信息,它通常用于控制网页的重定向、设置缓存策略、指定内容类型等,注意使用该函数时,必须在任何实际输出之前调用(包括普通的 HTML 标签、空行或空格)。如果在输出内容之后再调用该函数,将会导致报错。
' 重定向跳转到指定页面
置响应头("Location: http://www.example.com")
' 设置内容类型 (Content-Type):告诉浏览器当前返回的数据格式,如 HTML、JSON 或 PDF 文件。
置响应头("Content-Type: application/json")
' 控制页面缓存:设置缓存时间或禁止浏览器缓存页面。
置响应头("Cache-Control: no-cache, must-revalidate")
' 设置 HTTP 状态码:例如返回 404 未找到错误。
置响应头("HTTP/1.1 404 Not Found")
函数:执行函数(待执行函数名称)
通过函数名称执行指定函数,效果等同于:“call_user_func”。
学习要点
| 知识点 | 代码示例 | 说明 |
|---|---|---|
| 请求参数获取 | 取请求值("username") | 基于 PHP $_GET/$_POST/$_REQUEST;空参数返回全部 |
| 原生流数据 | 取请求流() | 基于 php://input;常用于接收前端提交的JSON字符串 |
| 请求方式判断 | 取请求方式() | 返回 "GET" 或 "POST",用于接口逻辑分支 |
| 服务器信息 | 取服务信息("REQUEST_URI") | 对应 PHP $_SERVER;空参数返回全部信息 |
| JSON编解码 | JSON编码(数组) / JSON解码(文本) | 对应 json_encode/json_decode;解码后用 ["键"] 访问 |
| 客户端IP | 取客户IP() | 获取访问者IP,用于日志记录、风控 |
| 会话凭证四件套 | 启用 → 置 → 取 → 销毁 | 对应 PHP session;登录信息保存与退出登录 |
| 全局变量 | 置全局变量(名, 值) / 取全局变量(名) | 跨文件共享数据;基于 PHP GLOBALS |
| HTTP请求 | 发送GET请求(地址, 超时, 协议头) | 基于 PHP cURL;支持自定义超时和协议头 |
| 响应头设置 | 置响应头("Content-Type: application/json") | 对应 PHP header();必须在任何输出前调用 |
| 格式化响应 | 格式化内容(200, 数据) | 输出带状态码的JSON字符串,便于前端判断请求状态 |
| 模块引用 | 引用模块("user_module") | 引入并使用指定模块文件;参数为不含后缀的模块名 |
| 文件上传 | 取上传文件("avatar") / 取上传文件临时路径("avatar") | 获取上传文件信息和临时路径;配合 移动上传文件 保存 |
| 空值判断 | 为空(变量) | 空字符串、空数组、空对象均为真;用 !(为空(x)) 判断非空 |
| 验证码生成 | 生成验证码("1234", 120, 40) | 返回图片流对象;前端用图片框(地址)接收 |
相关文档
- 文档
服务端(PHP)函数_字符串操作—— 后端字符串处理函数 - 文档
服务端(PHP)函数_数组操作—— 后端数组操作函数 - 文档
服务端(PHP)函数_编码操作—— URL编解码、HTML转义等函数 - 文档
服务端(PHP)函数_MYSQL操作—— 数据库操作函数 - 文档
服务端(PHP)函数_文件操作—— 文件读写、移动上传文件等 - 文档
服务端(PHP)函数_时间操作——取现行时间戳、格式化时间等时间函数 - 文档
轻语言网站:变量与数组与对象的定义—— 变量、对象、数组的基本语法