服务端(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(){}functionclassecho 等控制结构与语法关键字)。
  • 控制结构必须使用轻语言中文关键字:如果...否则...结束 如果变量循环...结束循环函数 ... 结束 函数 等。
  • 注:->(对象方法调用)、=>(数组键值分隔)为轻语言本身支持的语法符号,可正常使用。

PHP 核心库相关特性:

  • 请求处理取请求值 基于 PHP $_GET/$_POST/$_REQUEST取请求流 基于 php://input 接收原生流数据
  • 服务器信息取服务信息 对应 PHP $_SERVER,可获取请求URI、用户代理、主机名等
  • 会话凭证启用会话凭证/置会话凭证/取会话凭证/销毁会话凭证 对应 PHP session_start/$_SESSION/session_destroy
  • JSON处理JSON编码/JSON解码 对应 PHP json_encode/json_decode;前端用 JSON编码/JSON解析
  • 全局变量置全局变量/取全局变量 跨文件共享数据,基于 PHP GLOBALS
  • HTTP请求发送GET请求/发送POST请求 对应 PHP cURL,支持自定义超时和协议头
  • 响应头置响应头 必须在任何输出前调用,否则报错;对应 PHP header()
  • 格式化输出格式化内容 输出带状态码的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)函数_时间操作 —— 取现行时间戳格式化时间 等时间函数
  • 文档轻语言网站:变量与数组与对象的定义 —— 变量、对象、数组的基本语法