当前位置:首页 > 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实现购物车

php实现购物车

PHP实现购物车功能 购物车功能是电商网站的核心模块之一,通常涉及商品添加、删除、数量修改和结算等操作。以下是使用PHP实现购物车功能的几种方法。 使用Session存储购物车数据 Session是…

php实现文件下载

php实现文件下载

PHP实现文件下载的方法 通过PHP实现文件下载功能,可以采用多种方式,以下是几种常见的实现方法: 使用header()函数强制下载 设置HTTP头信息,强制浏览器下载文件而非直接打开: $fi…

php实现增删改查

php实现增删改查

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

php购物车实现

php购物车实现

PHP购物车实现方法 使用PHP实现购物车功能可以通过多种方式完成,以下是几种常见的实现方法: Session存储购物车数据 利用PHP的$_SESSION超全局变量存储购物车数据是最简单的方法。用…

php实现一个

php实现一个

PHP 实现一个简单的计算器 创建一个基本的计算器,支持加、减、乘、除运算。以下是一个完整的实现代码示例: <?php $result = ""; if ($_SERVER["REQUEST_…

php实现登陆

php实现登陆

PHP 实现登录功能 创建登录表单 在 HTML 文件中创建一个登录表单,包含用户名和密码输入框,表单的 action 属性指向处理登录的 PHP 文件。 <form action="logi…