避免在php中的http_build_query中转换HTML实体

时间:2017-05-23 08:59:16

标签: php html url html-entities

阻止HTML实体的转换。

请查看以下代码:

$array = array(
  "id" => 123456,
  "currency" => "EUR",
);

var_dump(http_build_query($array));

//OUTPUT:
string 'id=123456&currency=EUR' (length=22)

好的,有效。但有些服务器给我这个输出:

string(25) "pspid=123456¤cy=EUR"

因此,某些服务器将&curren视为HTML实体。但我不想要那个。

如何避免不必要的HTML实体转换?

2 个答案:

答案 0 :(得分:0)

解决方案很简单。 只需在输出中使用htmlentities即可。

ini_set("display_errors", 1);
$array = array(
  "id" => 123456,
  "currency" => "EUR",
);
print_r(http_build_query($array));
echo PHP_EOL;
print_r(htmlentities(http_build_query($array)));

//OUTPUT:
id=123456&currency=EUR
id=123456&currency=EUR

链接: https://eval.in/803318

答案 1 :(得分:0)

检查你的php版本:

PHP 5.3.1(越野车行为)http_build_query逃脱'&'加入参数的&符号。示例:user_id = 1& setting_id = 2.

PHP 5.4+ http_build_query不要逃避'&'加入参数的&符号。示例:user_id = 1& setting_id = 2

有关详情,请点击此处:https://stackoverflow.com/a/42317655/1016425