当前位置:首页 > PHP

php 实现escape加密

2026-02-15 19:17:55PHP

php 实现escape加密

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

php 实现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 内置函数。

标签: phpescape
分享给朋友:

相关文章

php实现mysql

php实现mysql

PHP 连接 MySQL 的基本方法 PHP 提供了多种方式与 MySQL 数据库进行交互,以下是最常用的几种方法。 使用 MySQLi 扩展 MySQLi 是 MySQL 的改进扩展,支持面向对…

php实现聊天

php实现聊天

实现 PHP 聊天功能的方法 使用 WebSocket 和 PHP 实现实时聊天 WebSocket 是一种全双工通信协议,适合实现实时聊天功能。PHP 可以通过 Ratchet 库实现 WebSo…

php队列的实现

php队列的实现

PHP队列的实现方式 PHP中实现队列功能可以通过多种方式,根据需求选择适合的方案: 使用数组实现基础队列 PHP数组本身支持队列操作,利用array_push和array_shift函数: $q…

php实现上传图片

php实现上传图片

上传图片的基本流程 PHP 实现图片上传功能需要处理文件接收、验证、保存等步骤。以下是具体实现方法。 创建 HTML 表单 在 HTML 中创建一个表单,设置 enctype="multipart/…

php 队列的实现

php 队列的实现

PHP 队列的实现方法 使用数据库实现队列 创建一个数据表存储队列任务,包含任务ID、状态、创建时间等字段。通过SQL语句实现任务的入队和出队操作。 // 入队操作 INSERT INTO queu…

无限分类实现 php

无限分类实现 php

无限分类的实现方法 无限分类通常用于构建多层级结构的数据,如商品分类、部门架构等。以下是几种常见的实现方式: 邻接列表模式(Adjacency List) 邻接列表是最简单的实现方式,通过在每个记录…