服务端(PHP)函数_编码操作
文档概述
轻语言网站**后端(PHP)**开发中的编码操作相关函数、用于处理各种编码转换和编码安全,包含ASCII与十六进制转换、URL编解码、HTML转义还原、UUENCODE编解码、反斜杠转义等功能,常用于数据编码、安全防护、编码转换等场景。
⚠️ 使用限制说明:
- 本文档内函数仅限在轻语言后端文件
.sph代码中使用,用于编写服务端逻辑(编译后输出为 PHP 代码在服务器执行)。- 不得在编写前端页面
.spl代码中使用,更禁止与 JS 代码混合使用。- 编写前端请使用
前端(JavaScript)函数_*类目下的中文函数;服务端只能使用服务端(PHP)函数_*类目下的中文函数。- 前后端虽存在同名函数(如
URL编码、URL解码),但底层实现与运行环境完全不同,严禁混用。
💡 PHP 原生英文函数使用说明:
- 轻语言后端支持直接调用 PHP 原生英文函数(如
print_r()、urlencode()、base64_encode()、mb_convert_encoding()等)。- 当遇到轻语言未封装中文函数、但 PHP 原生函数可用时,可直接使用原生英文函数。
- 仅支持使用原生英文函数名,严禁使用 PHP 原生语法格式和英文关键字(如
if(){}、for(){}、function、class、echo等控制结构与语法关键字)。- 控制结构必须使用轻语言中文关键字:
如果...否则...结束 如果、变量循环...结束循环、函数 ... 结束 函数等。- 注:
->(对象方法调用)、=>(数组键值分隔)为轻语言本身支持的语法符号,可正常使用。
PHP 编码相关特性:
- URL编码差异:后端
URL编码基于 PHPurlencode,空格转+;前端 JSencodeURIComponent空格转%20 - HTML转义:基于 PHP
htmlspecialchars,转义< > & " ',用于防 XSS 攻击 - 反斜杠转义:基于 PHP
addslashes,转义' " \ NULL,用于防 SQL 注入 - 编码函数对称:
ASCII到十六进制↔十六进制到ASCII、URL编码↔URL解码、HTML转义↔HTML还原、编码UUENCODE↔解码UUENCODE、反斜杠转义↔反斜杠还原
函数:ASCII到十六进制(待转换文本)
把 ASCII 字符的字符串转换为十六进制值。
' 将ASCII文本转换为十六进制
变量 文本 = "Hello"
变量 十六进制 = ASCII到十六进制(文本)
输出 "原文本: " + 文本
输出 "十六进制: " + 十六进制
' 再转换回来验证
变量 转回文本 = 十六进制到ASCII(十六进制)
输出 "转回文本: " + 转回文本
函数:十六进制到ASCII(待转换文本)
把十六进制字符串转换为 ASCII 字符。
' 将十六进制转换为ASCII文本
变量 十六进制值 = "48656c6c6f" ' "Hello"的十六进制
变量 ASCII文本 = 十六进制到ASCII(十六进制值)
输出 "十六进制: " + 十六进制值
输出 "ASCII文本: " + ASCII文本
函数:代码转字符(待转换代码)
将指定的 ASCII 值转成字符。
' 将ASCII码转换为字符
变量 ASCII码 = 65
变量 字符 = 代码转字符(ASCII码)
输出 ASCII码 + "对应的字符是: " + 字符
' 转换多个ASCII码
变量 字符A = 代码转字符(65)
变量 字符B = 代码转字符(66)
变量 字符C = 代码转字符(67)
输出 "ABC: " + 字符A + 字符B + 字符C
函数:解码UUENCODE(待解码文本)
解码 uuencode 编码的字符串。
' 对UUENCODE编码的文本进行解码
变量 UU编码文本 = 编码UUENCODE("这是一个测试文本")
输出 "UU编码后: " + UU编码文本
变量 解码后文本 = 解码UUENCODE(UU编码文本)
输出 "解码后: " + 解码后文本
函数:编码UUENCODE(待编码文本)
使用 uuencode 算法对字符串进行编码。
' 对文本进行UUENCODE编码
变量 原文本 = "Hello World!"
变量 UU编码 = 编码UUENCODE(原文本)
输出 "原文本: " + 原文本
输出 "UU编码: " + UU编码
' 验证解码结果
变量 解码结果 = 解码UUENCODE(UU编码)
输出 "解码验证: " + 解码结果
函数:URL解码(待解码文本)
对URL已编码文本进行解码。
' 对URL编码的文本进行解码
变量 URL编码文本 = "Hello%20World%21" ' "Hello World!"的URL编码
变量 URL解码文本 = URL解码(URL编码文本)
输出 "URL编码: " + URL编码文本
输出 "URL解码: " + URL解码文本
' 更复杂的URL编码解码(注:中文UTF-8编码格式)
变量 复杂编码 = "name%3D%E4%B8%AD%E6%96%87%26age%3D25" ' "name=中文&age=25"的编码
变量 复杂解码 = URL解码(复杂编码)
输出 "复杂编码: " + 复杂编码
输出 "复杂解码: " + 复杂解码
函数:URL编码(待编码文本)
对文本进行URL编码。
' 对文本进行URL编码
变量 原文本 = "Hello World!"
变量 URL编码 = URL编码(原文本)
输出 "原文本: " + 原文本
输出 "URL编码: " + URL编码
' 对包含特殊字符的文本进行编码(注:空格会被编码为 + 号)
变量 特殊文本 = "name=张三&age=25&city=北京"
变量 特殊编码 = URL编码(特殊文本)
输出 "特殊文本: " + 特殊文本
输出 "特殊编码: " + 特殊编码
' 验证编码解码过程
变量 解码验证 = URL解码(特殊编码)
输出 "编码解码验证: " + 解码验证
函数:HTML转义(待转义文本,转义标志,编码格式)
将HTML特殊字符转义为实体形式,包括< > & " '等字符,防止XSS攻击。
' 转义HTML特殊字符防止XSS
变量 用户输入 = "<script>alert('XSS')</script>"
变量 转义后 = HTML转义(用户输入)
输出 "转义后: " + 转义后 ' 输出: <script>alert('XSS')</script>
' 在Web页面中显示用户输入的安全做法
变量 用户评论 = "用户说:<strong>这个产品很好</strong>"
变量 安全显示 = HTML转义(用户评论)
输出 "安全显示: " + 安全显示
函数:HTML还原(待还原文本)
将转义的HTML实体字符还原为原始字符,是转义HTML字符函数的反向操作。
' 将转义的HTML实体还原为原始字符
变量 转义文本 = "<h1>标题</h1>"
变量 还原后 = HTML还原(转义文本)
输出 "还原后: " + 还原后 ' 输出: <h1>标题</h1>
' 还原并显示安全内容
变量 安全内容 = "<p>这是一段安全的HTML内容</p>"
变量 原始内容 = HTML还原(安全内容)
输出 "原始内容: " + 原始内容
函数:反斜杠转义(待转义文本)
在特殊字符前添加反斜杠进行转义,包括单引号、双引号、反斜杠和NULL字符,用于防止SQL注入。
' 为SQL查询添加反斜杠转义
变量 用户名 = "O'Connor"
变量 转义用户名 = 反斜杠转义(用户名)
输出 "转义后: " + 转义用户名 ' 输出: O\'Connor
' 转义包含多种特殊字符的文本
变量 特殊文本 = "他说: \"我很喜欢这个产品\""
变量 转义特殊文本 = 反斜杠转义(特殊文本)
输出 "转义特殊文本: " + 转义特殊文本
函数:反斜杠还原(待还原文本)
去除由加反斜杠转义函数添加的反斜杠,还原原始字符串。
' 去除反斜杠还原原始字符串
变量 转义文本 = "O'Connor"
变量 还原文本 = 反斜杠还原(转义文本)
输出 "还原后: " + 还原文本 ' 输出: O'Connor
' 还原包含多种转义字符的文本
变量 转义句子 = "她说: \\\"这个很好\\\""
变量 原始句子 = 反斜杠还原(转义句子)
输出 "原始句子: " + 原始句子
学习要点
| 知识点 | 代码示例 | 说明 |
|---|---|---|
| ASCII十六进制互转 | ASCII到十六进制(文本) ↔ 十六进制到ASCII(文本) | 字符串与十六进制互转;常用于数据传输、编码存储 |
| ASCII码转字符 | 代码转字符(65) | 数字ASCII码转字符;65→A、66→B、97→a |
| URL编解码 | URL编码(文本) ↔ URL解码(文本) | 基于 PHP urlencode/urldecode;空格转 + 号 |
| HTML转义防XSS | HTML转义(文本) | 转义 < > & " ' 为实体;基于 htmlspecialchars 防XSS |
| HTML还原 | HTML还原(文本) | HTML转义 的反向操作;实体还原为原始字符 |
| 反斜杠转义防注入 | 反斜杠转义(文本) | 转义 ' " \ NULL;基于 addslashes 防SQL注入 |
| 反斜杠还原 | 反斜杠还原(文本) | 反斜杠转义 的反向操作;去除多余反斜杠 |
| UUENCODE编解码 | 编码UUENCODE(文本) ↔ 解码UUENCODE(文本) | uuencode 算法编码解码;用于二进制数据传输 |
| 编码对称性 | 编码/解码函数成对出现 | ASCII↔十六进制、URL、HTML、反斜杠、UUENCODE 均为对称设计 |
| 安全防护用途 | HTML转义 防XSS / 反斜杠转义 防注入 | 后端常见安全编码实践;用户输入入库前转义 |
相关文档
- 文档
服务端(PHP)函数_字符串操作—— 后端字符串处理函数 - 文档
服务端(PHP)函数_数组操作—— 后端数组操作函数 - 文档
服务端(PHP)函数_MYSQL操作—— 数据库操作(SQL注入防护场景) - 文档
服务端(PHP)函数_文件操作—— 文件读写操作 - 文档
轻语言网站:变量与数组与对象的定义—— 变量、对象、数组的基本语法