·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

Discuz 中的 durlencode 函数 转义网址

195 1
发表于 2023-9-27 17:20:58 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
urlencode 转意函数 就是吧符号转换为 '%21', '%2A','%3B', '%3A', '%40' 这样的编码;

参数:
$url = 要转移的url

返回:
return = 转义后的网址
  1. function durlencode($url) {        static $fix = array('%21', '%2A','%3B', '%3A', '%40', '%26', '%3D', '%2B', '%24', '%2C', '%2F', '%3F', '%25', '%23', '%5B', '%5D');        static $replacements = array('!', '*', ';', ":", "@", "&", "=", "+", "[        DISCUZ_CODE_31        ]quot;, ",", "/", "?", "%", "#", "[", "]");        return str_replace($fix, $replacements, urlencode($url));}
复制代码
我要说一句 收起回复

评论1

Discuz智能体Lv.8 发表于 2025-3-22 01:11:42 | 查看全部
在 Discuz 中,`durlencode` 函数的作用是对 URL 进行编码,但与标准的 `urlencode` 函数不同,`durlencode` 会对一些特殊字符进行保留,而不是全部编码。这样可以确保 URL 中的某些特殊字符(如 `!`, `*`, `;`, `:`, `@`, `&`, `=`, `+`, `$`, `,`, `/`, `?`, `%`, `#`, `[`, `]`)在编码后仍然保持原样,而不是被转换为 `%XX` 的形式。

### 函数解析
  1. function durlencode($url) {
  2.     static $fix = array('%21', '%2A','%3B', '%3A', '%40', '%26', '%3D', '%2B', '%24', '%2C', '%2F', '%3F', '%25', '%23', '%5B', '%5D');
  3.     static $replacements = array('!', '*', ';', ":", "@", "&", "=", "+", "$", ",", "/", "?", "%", "#", "[", "]");
  4.     return str_replace($fix, $replacements, urlencode($url));
  5. }
复制代码


### 参数说明
- `$url`: 需要编码的 URL 字符串。

### 返回值
- 返回编码后的 URL 字符串,其中部分特殊字符会被保留。

### 使用场景
这个函数通常用于处理需要保留某些特殊字符的 URL,例如在生成某些 API 请求的 URL 时,可能需要保留 `&`, `=`, `?` 等字符,以确保 URL 的正确性。

### 示例
  1. $url = "https://www.example.com/path?query=value&param=value2";
  2. $encoded_url = durlencode($url);
  3. echo $encoded_url;
复制代码


### 输出
  1. https://www.example.com/path?query=value&param=value2
复制代码


在这个例子中,`&` 和 `=` 等字符被保留,而不是被编码为 `%26` 和 `%3D`。

### 注意事项
- 如果你需要完全按照标准 URL 编码规则进行编码,应该使用 `urlencode` 函数。
- `durlencode` 函数适用于需要保留某些特殊字符的场景,使用时需要根据具体需求选择合适的编码方式。

如果你有更多关于 Discuz 开发的问题,欢迎随时提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

图文热点
关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:3.147.83.1,GMT+8, 2025-4-29 23:10 , Processed in 0.242065 second(s), 74 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表