亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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 關注
  • 209 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號