当前位置:首页 > PHP

php 实现escape加密

2026-02-15 19:17:55PHP

php 实现escape加密

在 PHP 中实现类似 JavaScript 的 escape() 函数加密,可以通过自定义函数对字符串进行编码处理。以下是实现方法和注意事项:

实现 escape 加密函数

function escape($str) {
    $len = strlen($str);
    $result = '';
    for ($i = 0; $i < $len; $i++) {
        $char = $str[$i];
        $ord = ord($char);
        if ($ord >= 65 && $ord <= 90 || $ord >= 97 && $ord <= 122 || $ord >= 48 && $ord <= 57 || strpos('@*-_+.', $char) !== false) {
            $result .= $char;
        } else if ($ord < 256) {
            $result .= '%' . strtoupper(dechex($ord));
        } else {
            $result .= '%u' . strtoupper(dechex($ord));
        }
    }
    return $result;
}

实现 unescape 解密函数

function unescape($str) {
    $result = '';
    $i = 0;
    $len = strlen($str);
    while ($i < $len) {
        if ($str[$i] == '%' && $str[$i + 1] == 'u') {
            $hex = substr($str, $i + 2, 4);
            $result .= mb_convert_encoding(pack('H*', $hex), 'UTF-8', 'UCS-2BE');
            $i += 6;
        } elseif ($str[$i] == '%') {
            $hex = substr($str, $i + 1, 2);
            $result .= chr(hexdec($hex));
            $i += 3;
        } else {
            $result .= $str[$i];
            $i++;
        }
    }
    return $result;
}

使用示例

$original = "Hello 世界!";
$escaped = escape($original);
echo "加密后: " . $escaped . "\n";

$unescaped = unescape($escaped);
echo "解密后: " . $unescaped . "\n";

注意事项

  • 该实现模拟了 JavaScript 的 escape() 函数行为,但注意 escape() 已在 JavaScript 中被废弃,推荐使用 encodeURIComponent()
  • 对于多字节字符(如中文),会转换为 %uXXXX 格式。
  • 数字、字母及 @*-_+. 字符不会被编码。
  • 解密时需要处理 %XX%uXXXX 两种格式。

替代方案

如果需要更标准的 URL 编码,可直接使用 PHP 内置函数:

$encoded = urlencode($str); // 编码
$decoded = urldecode($encoded); // 解码

以上代码提供了完整的 escape/unescape 实现方案,可根据实际需求选择使用自定义函数或 PHP 内置函数。

php 实现escape加密

标签: phpescape
分享给朋友:

相关文章

php实现验证码

php实现验证码

PHP实现验证码的方法 使用GD库生成验证码 GD库是PHP中处理图像的扩展,可用于生成验证码图片。 <?php session_start(); $width = 120; $height…

php实现树

php实现树

PHP实现树结构的方法 在PHP中实现树结构通常可以通过递归或迭代的方式完成。以下是几种常见的实现方法: 递归实现树结构 递归是处理树结构的自然方式,尤其适用于具有未知深度的树。 class Tr…

php实现图片上传

php实现图片上传

实现图片上传的基本步骤 创建HTML表单用于文件上传,表单需设置enctype="multipart/form-data"属性,确保文件数据正确传输。 <form action="upload…

php实现增删改查

php实现增删改查

以下是在PHP中实现增删改查(CRUD)操作的详细方法,以MySQL数据库为例: 数据库连接配置 创建config.php文件存储数据库连接信息: <?php $host = 'localh…

php实现websocket

php实现websocket

PHP 实现 WebSocket WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。PHP 可以通过多种方式实现 WebSocket 功能,以下是几种常见的方法: 使用 Rat…

php长连接实现

php长连接实现

PHP 长连接实现方法 长连接(Keep-Alive)允许客户端与服务器在一次TCP连接中发送和接收多个HTTP请求/响应,减少重复建立连接的开销。以下是PHP中实现长连接的几种方式: 配置HTTP…