2012-06-12 49 views
3

我正在嘗試使用PHP進行api調用。其中一個參數是貨幣在php中避免html轉義字符

我的API調用是這樣

<?php 
$call=".....&currency=USD&......."; 
$response = hash_call("Pay", $call); 
?> 

但是,如果我打印了通話,它打印出的

....¤cy=USD&....... 

我查了一下,結果發現,&curren is for ¤

編輯: 我試過urlencode和htmlentities。雖然我希望在源代碼中獲得&貨幣,但我分別獲得了%26currency,& amp。

我想編碼'&貨幣',這樣瀏覽器不會將& curren轉換爲¤。 謝謝

+0

你看到別的東西。添加更多細節。 –

+0

@ IgnacioVazquez-Abrams如果我回顯API字符串,它會將&curren打印到¤。但是,如果我看看HTML源代碼,它看起來很好。所以我認爲我正在尋找正確的東西。我可以添加什麼細節? – aVC

+0

用'& curren;'替換'&curren'。這不是程序化的,但它會暫時完成這項工作。 – Vulcan

回答

4

PHP不轉換任何東西。

瀏覽器正在將&current轉換爲¤t用於顯示目的。如果你想在瀏覽器中看到$call,那麼你將需要用htmlentities來包裝它,但是它專門編碼字符,以便在瀏覽器中顯示原始$call

但是,在將其傳遞到hash_call之前,您不應該對字符串$call做任何事情。

請記住,原始字符串和瀏覽器顯示內容之間存在很大差異。

+0

對於大多數實際用途都是正確的,但不幸的是不能在這裏工作。爲什麼如此:我做了一個測試。 &Current將在瀏覽器中顯示爲&Current。所以,如果我使用$ call =「...&Currency = USD&...」,那麼錯誤代碼表示'currency'參數不能爲空。所以我猜服務器在翻譯時發現了同樣的問題。 – aVC

+0

這是一個巨大的假設,可能不正確。您正在嘗試撥打的服務是否有文檔? – Hamish

+0

是的,我想我也有同樣的想法。解釋可能不是問題。謝謝您的幫助。 – aVC