当前位置:首页 > 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 的行为,需手动处理这些差异:

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 字符),两种语言的编码行为可能仍有差异。

js 实现 php urlencode

标签: jsphp
分享给朋友:

相关文章

php实现文件下载

php实现文件下载

PHP 实现文件下载的方法 使用 header() 函数强制下载 设置正确的 HTTP 头信息,强制浏览器下载文件而不是直接打开。 $file = 'path/to/file.pdf'; if (…

php实现分页

php实现分页

PHP实现分页的基本方法 使用LIMIT和OFFSET进行数据库查询分页。通过计算当前页码和每页显示数量,动态生成SQL语句。 $page = isset($_GET['page']) ? (int…

js实现验证码

js实现验证码

使用Canvas生成图形验证码 在HTML中创建一个Canvas元素用于绘制验证码。通过JavaScript随机生成数字或字母组合,并添加干扰线、噪点等干扰元素增强安全性。 <canvas i…

js实现图片上传

js实现图片上传

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现图片上传功能。HTML部分需要创建一个文件选择输入框和一个用于…

js实现日历

js实现日历

实现日历的基本思路 使用JavaScript实现日历的核心是动态生成日期表格,并处理月份切换逻辑。需要计算当前月的天数、起始星期几,并动态渲染到页面上。 获取当前日期信息 通过Date对象获取当前…

php实现递归

php实现递归

递归的基本概念 递归是一种函数调用自身的技术,适用于解决可以分解为相同子问题的问题。在PHP中,递归需要明确的终止条件(基线条件),否则会导致无限循环。 递归实现阶乘 阶乘是经典的递归案例,n!…