为了账号安全,请及时绑定邮箱和手机立即绑定

PHP urlencode 问题与我的字符串中的一个参数:“¬ify_url”错误地返回

PHP urlencode 问题与我的字符串中的一个参数:“¬ify_url”错误地返回

PHP
皈依舞 2022-07-02 15:44:32
因此,当我在以下字符串上使用 PHP 的urlencode时,似乎出现了一个技术性问题,我认为这是一个保留的 PHP 单词“ ¬ ”。原始字符串:cancel_url=https://example.com/payment_cancelled&notify_url=https://example.com/order_notify我使用 urlencode 得到以下结果:cancel_url=https%3A%2F%2Fexample.com%2Fpayment_cancelled¬ify_url=https%3A%2F%2Fexample.com%2Forder_notify正如您在上面注意到的,它创建的 '¬' 特殊字符(就在单词 'cancelled' 之后)。所以对我来说,“¬ify_url”的“¬”部分似乎是一个运算符保留的运算符字(PHP 中的“¬”?)。我在 url 编码后尝试了 PHP 的 str_replace 函数,如下所示:$paramUrlString = str_replace('¬', '&not', $paramUrlString);$paramUrlString = str_replace('&#170', '&not', $paramUrlString);(也尝试使用该特殊字符的 ASCII 码)我现在已经没有想法了。请帮忙,谢谢。
查看完整描述

2 回答

?
侃侃尔雅

TA贡献1801条经验 获得超16个赞

urlencode 通常根本不替换&not,但会替换&%26. 请参阅此处的示例:http: //sandbox.onlinephpfunctions.com/code/e9d62797d01f8162170e5ad5181e14fc339faa52

您可以尝试在 urlencode 之前替换&为。%26

$urlString = str_replace('&', '%26', $urlString);


查看完整回答
反对 回复 2022-07-02
?
慕标5832272

TA贡献1966条经验 获得超4个赞

并不是 PHP 中的任何东西都用 替换字符串&not¬而是您用来查看/显示数据的任何东西都在这样做。

鉴于;不需要关闭实体,我敢打赌您将 URL 放入 XML 中而没有正确转义实体。虽然&是在 URL 和 XML 之间发生冲突的实体,但不止于此。

最简单的解决方案是,如果您在需要调用的 XML 文档中嵌入原始字符串:

$string = htmlspecialchars($string, ENT_XML1 | ENT_COMPAT);

另一方面,最好的解决方案是根本不手动创建 XML 文档。使用DOMDocumentXMLWriter 之类的库。这不仅处理数据的转义/编码,还处理创建适当 XML 文档的所有其他微妙复杂性。


查看完整回答
反对 回复 2022-07-02
  • 2 回答
  • 0 关注
  • 239 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号