我正在使用implode创建一个查询字符串但是它中出现了一个意外的符号,我不确定它来自哪里
如果有任何人有任何见解,将不胜感激。
$url = "https://mypay.com/billing/signup.cgi";
$key = "11";
$key .= "11";
$key .= "GBP";
$key .= "QQDNfAHlC2WEEfhfhFFdhbdf";
$variables[] = "?formDigest=".md5($key);
$variables[] = "clientAccnum=1111";
$variables[] = "clientSubacc=1111";
$variables[] = "formName=108ck";
$variables[] = "formPrice=11";
$variables[] = "formPeriod=11";
$variables[] = "currencyCode=GBP";
$url .= implode("&", $variables);
echo $url;
字符串
https://bill.ccbill.com/jpost/signup.cgi?formDigest=df03f2b103f79bd5de34c6cfea405ec5&clientAccnum=1111&clientSubacc=1111&formName=108ck&formPrice=11&formPeriod=11¤cyCode=GBP
注意currencyCode应该是¤
符号。
感谢帮助人员!
答案 0 :(得分:4)
implode
效果很好。
这里的问题是您输出的是HTML文本(echo $url
),但是您没有使用htmlspecialchars
正确编码HTML特殊字符。
当浏览器看到子字符串¤cyCode=GBP
时,它会猜到你必须意味着¤Code=GBP
; ¤
是货币符号的HTML entity,因此您在屏幕上看到的就是。
将代码更改为echo htmlspecialchars($url)
以查看即时差异;要获得完全正确的解决方案,请注意并为htmlspecialchars
的前三个参数提供正确的值。
答案 1 :(得分:-1)
“& curren ”将以这种方式显示...将变量名称“ currencyCode ”更改为其他内容并且可以正常工作
问候
Sudeep