我正在编写一个函数来构建一个URL,这里是:
public static function requestContent($p_lParameters)
{
$sParameters = "?key=TEST&format=json&jsoncallback=none";
foreach($p_lParameters as $sParameterName => $sParameterValue)
{
$sParameters .= "&$sParameterName=$sParameterValue";
}
echo "<span style='font-size: 16px;'>URL : http://api.oodle.com/api/v2/listings" . $sParameters . "</span><br />";
$aXMLData = file_get_contents("http://api.oodle.com/api/v2/listings" . $sParameters);
return json_decode($aXMLData,true);
}
我用这个数组列表调用这个函数:
print_r() result : Array ( [region] => canada [category] => housing/sale/home )
但是这很奇怪我得到了一个意外的角色(请注意特殊字符none **®** ion):
http://api.oodle.com/api/v2/listings?key=TEST&format=json&jsoncallback=none®ion=canada&category=housing/sale/home
有关信息,我使用此标题:
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<?php header('Content-Type: text/html;charset=UTF-8'); ?>
编辑:
$sRequest = "http://api.oodle.com/api/v2/listings?key=TEST&format=json&jsoncallback=none®ion=canada&category=housing/sale/home";
echo "<span style='font-size: 16px;'>URL : " . $sRequest . "</span><br />";
返回包含问题的确切网址:
http://api.oodle.com/api/v2/listings?key=TEST&format=json&jsoncallback=none®ion=canada&category=housing/sale/home
答案 0 :(得分:1)
这是解决方案,这次它将起作用
$sParameters .= "&$sParameterName=$sParameterValue";
$sParameters = htmlentities($sParameters);
它将所有字符集转换为html代码..即使我在用户输入中经常使用它,也完全忘记了这一点......
答案 1 :(得分:0)
好吧,首先你要构建一个字符串
$sParameters = "?key=TEST&format=json&jsoncallback=none";
然后你追加。所以它会连接起来。 现在,字符串的最后一部分可能是&amp;你的参数是区域。
以某种方式转换为html ASCII码&amp; reg;这会导致注册的符号出现。