如何在 PHP 中转义这些符号?
How do I escape these ampersands in PHP?
我目前正在写一些使用 Steam 网络的东西 API,我正在尝试通过网络 API 获取 Steam 市场价格,如下所示:
$url = 'http://steamcommunity.com/market/priceoverview/?currency=3&appid=730&market_hash_name='.$itemInfo['market_hash_name'];
$itemInfo['market_hash_name']
是我从 API 得到的另一个 JSON 的东西。
那应该 return 像这样:
http://steamcommunity.com/market/priceoverview/?currency=3&appid=730&market_hash_name=SCAR-20 | Contractor (Well-Worn)
确实如此,这很好,因为当我将其放入浏览器时,它会转换为
http://steamcommunity.com/market/priceoverview/?currency=3&appid=730&market_hash_name=SCAR-20%20|%20Contractor%20(Well-Worn)
哪个return是我需要的JSON。
但出于某种原因,当它与 get_file_contents
一起使用时,它会像这样翻译 & 符号:
http://steamcommunity.com/market/priceoverview/?currency=3&appid=730&market_hash_name=Operation Breakout Weapon Case
如果我把它扔进浏览器 window,那 return 什么都不是。因此,我使用 htmlspecialchars
还是 html_entity_decode
并不重要,因为每当我将其放入 get_file_contents
时,它只会再次对符号进行编码。
我该怎么做?
So it doesnt really matter if i use htmlspecialchars or html_entity_decode, cuz whenever i put it into get_file_contents it just encodes the ampersands once again.
这些都不是用于 URI 编码。那是 urlencode
的工作。
所以:
$url = 'http://steamcommunity.com/market/priceoverview/?currency=3&appid=730&market_hash_name='.urlencode($itemInfo['market_hash_name']);
我目前正在写一些使用 Steam 网络的东西 API,我正在尝试通过网络 API 获取 Steam 市场价格,如下所示:
$url = 'http://steamcommunity.com/market/priceoverview/?currency=3&appid=730&market_hash_name='.$itemInfo['market_hash_name'];
$itemInfo['market_hash_name']
是我从 API 得到的另一个 JSON 的东西。
那应该 return 像这样:
http://steamcommunity.com/market/priceoverview/?currency=3&appid=730&market_hash_name=SCAR-20 | Contractor (Well-Worn)
确实如此,这很好,因为当我将其放入浏览器时,它会转换为
http://steamcommunity.com/market/priceoverview/?currency=3&appid=730&market_hash_name=SCAR-20%20|%20Contractor%20(Well-Worn)
哪个return是我需要的JSON。
但出于某种原因,当它与 get_file_contents
一起使用时,它会像这样翻译 & 符号:
http://steamcommunity.com/market/priceoverview/?currency=3&appid=730&market_hash_name=Operation Breakout Weapon Case
如果我把它扔进浏览器 window,那 return 什么都不是。因此,我使用 htmlspecialchars
还是 html_entity_decode
并不重要,因为每当我将其放入 get_file_contents
时,它只会再次对符号进行编码。
我该怎么做?
So it doesnt really matter if i use htmlspecialchars or html_entity_decode, cuz whenever i put it into get_file_contents it just encodes the ampersands once again.
这些都不是用于 URI 编码。那是 urlencode
的工作。
所以:
$url = 'http://steamcommunity.com/market/priceoverview/?currency=3&appid=730&market_hash_name='.urlencode($itemInfo['market_hash_name']);