用戶在我的PHP代碼中調用Web服務API,但沒有正確編碼輸入(如&符號等),因爲廢話(我不能使用b *詞在這裏,但你知道,開發人員不關心政治或感情,你做對了或不!)這是我的問題,以解決它...在我嘗試在PHP中解析它之前,如何編碼輸入XML ?PHP在輸入Web服務XML中編碼特殊字符XML
我做了一個字符串替換&符號,但偏離了這些人(a *字)可以使用的宇宙中有更多無效字符。
用戶在我的PHP代碼中調用Web服務API,但沒有正確編碼輸入(如&符號等),因爲廢話(我不能使用b *詞在這裏,但你知道,開發人員不關心政治或感情,你做對了或不!)這是我的問題,以解決它...在我嘗試在PHP中解析它之前,如何編碼輸入XML ?PHP在輸入Web服務XML中編碼特殊字符XML
我做了一個字符串替換&符號,但偏離了這些人(a *字)可以使用的宇宙中有更多無效字符。
如果沒有更多的細節和代碼很難說正是你需要的,但看看urlencode()
或htmlentities()
或htmlspecialchars()
http://php.net/manual/en/function.urlencode.php
我幾乎完全確保沒有內置功能來做到這一點,在PHP中。因爲php的模塊需要的最小值是...一個合適的編碼xml文件(例如libxml/libdom)
不正確的編碼文件很難消毒,因爲您必須考慮「應該編碼什麼」和「什麼不應該被編碼「
你需要來標記你的輸入XML,那麼你需要檢查每一個單件和消毒的代碼錯件,例如字符」包含的屬性
裏面是一個艱苦的工作,那麼你可以做的更好的事情是修復或修復源xml
恕我直言!
我建議你返回一個HTTP 400錯誤,這意味着「請求無法通過服務器因語法錯誤的理解。」(RFC 2616)
既然你期待有效的XML,你可以使用loadXml
將其加載到DOMDocument中,並使用libxml_get_errors
的結果查看XML錯誤(我建議使用libxml_use_internal_errors(true)
)。
您可以在響應正文中返回libxml錯誤(例如請求中的「未轉義'&'等)。