当前位置:首页 > PHP

js 实现 php urlencode

2026-02-15 16:38:11PHP

在 JavaScript 中实现 PHP 的 urlencode 功能

PHP 的 urlencode 函数会对字符串进行 URL 编码,将特殊字符转换为百分号编码。JavaScript 可以通过 encodeURIComponent 函数实现类似功能,但两者在编码规则上存在细微差异。

使用 encodeURIComponent 实现

JavaScript 的 encodeURIComponent 会对更多字符进行编码,包括 !, ', (, ), * 等,而 PHP 的 urlencode 不会编码这些字符。若需完全匹配 PHP 的行为,需手动处理这些差异:

function phpUrlencode(str) {
    return encodeURIComponent(str)
        .replace(/!/g, '%21')
        .replace(/'/g, '%27')
        .replace(/\(/g, '%28')
        .replace(/\)/g, '%29')
        .replace(/\*/g, '%2A')
        .replace(/~/g, '%7E');
}

处理空格编码差异

PHP 的 urlencode 会将空格编码为 +,而 encodeURIComponent 会编码为 %20。若需完全匹配 PHP 的行为:

js 实现 php urlencode

function phpUrlencode(str) {
    return encodeURIComponent(str)
        .replace(/!/g, '%21')
        .replace(/'/g, '%27')
        .replace(/\(/g, '%28')
        .replace(/\)/g, '%29')
        .replace(/\*/g, '%2A')
        .replace(/~/g, '%7E')
        .replace(/%20/g, '+');
}

示例使用

const encoded = phpUrlencode('Hello World!');
console.log(encoded); // 输出 "Hello+World%21"

注意事项

  • 此实现覆盖了大多数常见字符的编码差异,但若需完全精确匹配 PHP 的 urlencode,可能需要进一步调整。
  • 对于特殊场景(如非 ASCII 字符),两种语言的编码行为可能仍有差异。

标签: jsphp
分享给朋友:

相关文章

js实现选项卡

js实现选项卡

实现选项卡的基本思路 选项卡通常由一组标签和对应的内容面板组成。点击标签时,显示对应的内容面板,隐藏其他面板。实现这一效果需要结合HTML结构、CSS样式和JavaScript交互逻辑。 HTML结…

js实现复制功能

js实现复制功能

使用 document.execCommand 方法 这种方法适用于较旧的浏览器,但在现代浏览器中可能被逐步淘汰。通过创建一个临时的 textarea 元素,将文本内容放入其中,然后执行复制命令。…

php实现搜索功能

php实现搜索功能

实现基本的搜索功能 在PHP中实现搜索功能通常涉及数据库查询。以下是一个简单的实现方式,假设使用MySQL数据库: <?php // 连接数据库 $conn = new mysqli('loc…

php实现验证码

php实现验证码

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

php实现树

php实现树

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

php实现websocket

php实现websocket

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