当前位置:首页 > PHP

js 实现 php urlencode

2026-02-15 16:38:11PHP

在 JavaScript 中实现 PHP 的 urlencode 功能

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

js 实现 php urlencode

使用 encodeURIComponent 实现

JavaScript 的 encodeURIComponent 会对更多字符进行编码,包括 !, ', (, ), * 等,而 PHP 的 urlencode 不会编码这些字符。若需完全匹配 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');
}

处理空格编码差异

PHP 的 urlencode 会将空格编码为 +,而 encodeURIComponent 会编码为 %20。若需完全匹配 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')
        .replace(/%20/g, '+');
}

示例使用

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

注意事项

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

标签: jsphp
分享给朋友:

相关文章

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 或直接使用 window.location 实现页面跳转,适用于普通跳转或带参数的 URL。 // 方…

js实现拖拽

js实现拖拽

实现拖拽的基本步骤 通过监听鼠标事件(mousedown、mousemove、mouseup)实现拖拽功能。以下是核心代码逻辑: const draggableElement = document.…

php实现树

php实现树

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

php 实现登录

php 实现登录

PHP 登录功能实现 使用 PHP 实现登录功能通常需要结合数据库验证和会话管理。以下是一个基本的登录实现流程: 数据库准备 创建用户表存储用户名和密码(建议使用哈希加密): CREATE TAB…

php 购物车实现

php 购物车实现

数据库设计 购物车功能通常需要设计数据库表存储商品和用户信息。常见的表包括products(商品表)、users(用户表)和cart(购物车表)。cart表通常包含字段:id(主键)、user_id(…

php实现聊天

php实现聊天

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