PHP URL 编码保留无效的 url 字符

2023-12-10

我需要将 url 无效字符替换为 url 有效字符,然后再次将其转换回来。

这是一个带有类似 url 的搜索页面http://my.site/search/this-is-a-search,搜索表单 POSTS 然后用户重定向到新的 url。

Php 有 urlencode 和 urldecode 函数,但是这些函数根本不起作用,并且在我的 url 中留下无效字符。

当然,我不需要在这里重新发明轮子。


对于像这样的东西http://my.site/search/this-is-a-search(即在查询字符串之外),您应该使用rawurlencode and rawurldecode。这些保证是 URL 安全的。

然而,urlencode也永远不会生成不安全的 URL 路径,因为唯一的区别是空格的编码方式和urlencode将空格编码为+,在 URL 路径中是允许的。

来自 RFC 1738:



httpurl        = "http://" hostport [ "/" hpath [ "?" search ]]
hpath          = hsegment *[ "/" hsegment ]
hsegment       = *[ uchar | ";" | ":" | "@" | "&" | "=" ]
uchar          = unreserved | escape
unreserved     = alpha | digit | safe | extra
safe           = "$" | "-" | "_" | "." | "+"
  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP URL 编码保留无效的 url 字符 的相关文章

  • simplexml,返回具有相同标签的多个项目

    我将以下 XML 文件加载到 php simplexml 中
  • PHP SFTP 简单文件上传

    我正在使用 phpseclib SFTP 类 并尝试上传这样的文件 sftp new Net SFTP mydomain com if sftp gt login user password exit Login Failed sftp g
  • 如何在 PHP 中打开从第 X 行到第 Y 行的文件?

    我在 PHP 文档中看到的最接近的是 fread 给定的长度 但这并没有指定从哪一行开始 还有其他建议吗 是的 您可以轻松地做到这一点SplFileObject seek http de php net manual en splfileo
  • PHP“按引用分配”的奇怪现象

    我发现了一个代码片段 其中包括 a b 但没有测试 b 是否确实存在 if isset b 我不确定 PHP 是如何处理这个问题的 所以我进行了一个快速的裸测试 现在我更加感兴趣了 a array a gt b x gt y b array
  • mysql数据库的“零知识”加密

    我一直在研究 Web 应用程序数据库层的加密 它使用MySQL 5 1 或更高版本 我记不清了 该应用程序由我的组织管理 为公共客户存储数据 最简单的选择是 AES ENCRYPT AES DECRYPT 如果坏人以某种方式访问 我的数据库
  • 如果 Woocommerce 单一产品中的库存数量少于 10,请在库存数量旁边添加文本

    我发现这是作为另一个线程的评论发布的 但我不知道应该用它做什么 if product gt get stock quantity lt 10 echo Limited supply left 我想它应该有一个钩子 我试过woocommerc
  • PHP 中的变量 $this 意味着什么?

    我看到变量 this一直用PHP 但我不知道它有什么用 我个人从未使用过它 有人可以告诉我变量如何 this在 PHP 中工作吗 它是对当前对象的引用 最常用于面向对象的代码中 参考 http www php net manual en l
  • 我可以为我的记录器使用静态类吗?

    最近我被告知静态类 方法是邪恶的 以我的 Logger 类为例 class Logger private static logs array public static function add msg self logs msg publ
  • 如何循环并访问多维且关联的数组中的各个元素? PHP,JSON 或 XML

    我正在通过 API zotero org 检索书目数据 它与底部的示例类似 只是更复杂 示例是键入的 我想检索一条或多条记录并在页面上显示某些值 例如 我想循环遍历每个顶级记录并以格式良好的引文打印数据 暂时忽略正确的围兜样式 假设我只想为
  • 替换字符串中的重复字符串

    我正在尝试查找 并替换 字符串中重复的字符串 我的字符串可以是这样的 Lorem ipsum dolor 坐阿梅特坐 阿梅特坐 阿梅特坐诺斯特鲁德实习amit situllamco Laboris nisi ut aliquip ex ea
  • Woocommerce - 检查产品是否是在 60 天前创建的

    我想检查 Woocommerce 产品是否是在不到 60 天前创建的 如果属实 请做点什么 我正在使用官方 Woocmerce 功能获取在后端 管理中创建产品的日期 product gt get date created 我的代码部分有效
  • Magento 开源 2.3 - CSS 和 JS 未加载

    I installed Magento 2 3 successfully but when type http localhost Magento2 http localhost Magento2 I get a blank page li
  • 正则表达式多次匹配多行

    我有一个像这样的字符串 Name John Doe Age 23 Primary Language English Description This is a multiline description field that I want
  • Magento - 将媒体库属性添加到产品平板中

    如何将 media gallery 属性类型添加到产品平面表中 以便可以在产品列表中使用它 可以通过将 用于产品列表 定义为 是 来添加它们 完成此操作后 您将需要重新索引产品平面 编辑 请参阅解决方案以获取最终答案 Source 我可以向
  • Laravel Factory:手动增量列

    对于以下工厂定义 该列order需要按顺序进行 已经有专栏了id即自动递增 第一行的order应该开始于1以及每个附加行的order应该是下一个数字 1 2 3 etc factory gt define App AliasCommand
  • POST 数据加密 - HTTPS 足够吗?

    考虑一个场景 其中用户身份验证 用户名和密码 由用户在页面的表单元素中输入 然后提交 POST 数据通过 HTTPS 发送到新页面 其中 php 代码将检查凭据 现在 如果黑客位于网络中 并说可以访问所有流量 那么在这种情况下应用程序层安全
  • 为 GET 请求设置的正确内容长度是多少?

    当我做一个POST使用以下代码请求 string body Hello World byte bytes Encoding ASCII GetBytes body WebRequest request WebRequest Create h
  • Active Record 库的 CodeIgniter 挂钩

    我需要一些帮助来理解 CodeIgniter 的钩子逻辑 以使代码适应我的需要 这一页 https www codeigniter com user guide general hooks html https www codeignite
  • 重定向至 2 页

    我有一个 PHP 页面 我想先将其重定向到一个页面 例如 google com 然后再重定向到另一个页面 例如 bing com 为此 我使用以下方法 header Location http google com header Locat
  • 错误 1366 (HY000):整数值不正确:第 1 行的列“id”的“”[已关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 My code sql INSERT INTO static table name sql join array key

随机推荐

  • 用 div 替换文本框,jquery 不起作用

    它只工作了几秒钟 然后 div 再次消失 document ready function done click function txtname replaceWith function return div this val div 你也
  • 如何使用太阳黑子实现通配符搜索

    随时欢迎任何帮助 我将 sunspot 与 solr 一起使用 但无法找到任何好的解决方案来说明如何使用 sunspot 执行通配符搜索 如果我搜索 8088 它应该返回以 8088 但不是 228088560 开头的所有数字 在 solr
  • 从 libgdx 中的集合中检测触摸对象(移动)的最佳方法

    这是我第一次尝试游戏开发 我刚刚开始尝试 libgdx 并了解游戏编程的不同方面 我看了示例项目 我可以了解libgdx游戏的整体架构 但为了掌握游戏动力学的基础知识 我开始玩低级的东西 比如如何绘制简单的形状 如何移动它们 如何处理此类碰
  • 从 C# 应用程序中启动 SFC

    我一直在寻找 但似乎无法完成这项工作 我正在尝试从 C 应用程序中的按钮启动 SFC 我知道这需要权利提升 并且在我试图做的范围内是我想要的行为 我努力了 以管理员身份运行 cmd 和命令 使用来自 C 的参数以管理员身份运行 CMD an
  • 如何在 firebase 中实现基于角色的访问控制

    这是我第一次涉足 Firebase 和 nosql 我有 SQL 背景 使用简单登录安全电子邮件 密码 如何限制对 Firebase 中数据的访问 例如 某些用户有权创建业务对象 用户 客户 类别等 而其他用户则无权 有没有办法将权限列表附
  • 具有动态行和列的 angular2 表

    如何在 angular2 中创建具有动态列和行的表格 我的数据来自休息服务并在此可观察中捕获 this physicalDataService getPhysicalData subscribe res gt this data res 我
  • 使用查询字符串和锚点标签形成正确的 URL

    当查询字符串和锚标记 哈希标记 在 URL 中可见时 它们的正确显示顺序是什么 http www whatever com var val anchor or http www whatever com anchor var val 有这方
  • 组合 ASP.NET 属性中的字符串

    我正在尝试在属性内连接一个字符串 我收到一个错误 我认为这与我的Eval 是否有正确的方法来连接字符串 或者这是不可能的 我认为问题在于我设置 NavigateUrl 的位置
  • 循环优化。寄存器重命名如何打破依赖关系?什么是执行端口容量?

    我正在分析 Agner Fog 的 optimization assemble 中的循环示例 我指的是12 9章 代码是 我简化了一下 L1 vmulpd ymm1 ymm2 rsi rax vaddpd ymm1 ymm1 rdi rax
  • 使用 BouncyCastle SSL 通过 keyFile 进行 Java AES 解密

    我正在尝试编写 Java 代码 使用与 OpenSSL 解密兼容的 BouncyCastle 来解密使用 AES256 加密的文件 s key 是提供的文件 其中包含将用于加密和解密的密钥 需要完成的步骤 1 读取密钥文件 2 使用提供的密
  • WebView 阻止弹出窗口吗?

    我在用着WebView浏览 pesopay com 并且它工作正常 除了当我按下提交按钮时 使用 Google Chrome 等互联网浏览器会显示一个弹出窗口 确认您填写的信息 但在我的安卓里WebView当我按下提交按钮时什么也没发生 我
  • 在 64 位 Windows 上安装 lxml

    所以我试图在我的机器上安装 lxml 但我似乎无法让它工作 我有 Windows 8 1 64 位和 python 3 5 我都用过 pip install lxml and easy install lxml 我不断收到此错误消息 C U
  • PyAudio 输入溢出 -9981 - 没有解决方案工作

    请不要将此问题报告为重复 因为没有一个可用的解决方案适合我 我测试了所有这些 所以 我正在尝试在我的 RaspberryPi B 型板上运行 PyAudio 示例录音程序 这是我收到的错误 Traceback most recent cal
  • 如何从仅标头库构建静态库

    我正在尝试构建项目的静态库stb 所以我可以将它链接到另一个项目 不是用 C C 编写的 我已经创建了 CMakeLists txt 文件来使用 CMake 构建它 但是构建的静态库文件是空的 我怀疑这是因为机顶盒似乎是仅标头图书馆 我尝试
  • 将函数应用于 DataFrame 中的每个单元格,该单元格取决于 pandas 中的列名称

    如何将函数应用于 DataFrame 中取决于列名称的每个单元格 我知道pandas DataFrame applymap但它似乎不允许依赖于列名称 import numpy as np import pandas as pd np ran
  • ggplot2 中稳健的标准错误

    我想用 ggplot2 绘制一个模型 我估计了一个稳健的方差 协方差矩阵 我想在估计置信区间时使用它 我可以告诉 ggplot2 使用我的 VCOV 或者 我可以以某种方式强制 Predict lm 使用我的 VCOV 矩阵吗 一个虚拟示例
  • 查找多个字符串匹配的算法

    我正在寻找一种有效算法的建议 用于在大量文本中查找所有匹配项 要搜索的术语将包含在列表中 并且可以有 1000 多种可能性 搜索词可以是 1 个或多个单词 显然 我可以多次遍历文本并与每个搜索词进行比较 效率不太高 我考虑过对搜索词进行排序
  • Rails 3.1 中的图像 - 转向生产

    我的文章有图片 我将图像放在 app assests images 中 并将它们的位置存储在数据库的字段中 然后我可以使用以下方式显示它们 但是当我转移到生产服务器时 我的图像都没有显示 服务器正在寻找 asset blank d5dd6e
  • 将文本添加到 grid.table 图中

    我最近开始使用grid table函数从gridExtra包将表格数据转换为 png 图像文件以在网络上使用 到目前为止 我对它很满意 因为它默认产生非常漂亮的输出 有点像ggplot2对于桌子 就像那个人asked对于这个问题 我希望看到
  • PHP URL 编码保留无效的 url 字符

    我需要将 url 无效字符替换为 url 有效字符 然后再次将其转换回来 这是一个带有类似 url 的搜索页面http my site search this is a search 搜索表单 POSTS 然后用户重定向到新的 url Ph