【问题标题】:avoid html escape character in php避免在php中使用html转义字符
【发布时间】:2012-06-12 02:10:44
【问题描述】:

我正在尝试使用 PHP 进行 api 调用。其中一个参数是货币

我的 API 调用是这样的

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

但如果我打印调用,它会打印为

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

我查了一下发现&amp;curren is for ¤

编辑: 我尝试了 urlencode 和 htmlentities。虽然我希望在源代码中获得 &currency ,但我分别获得了 %26currency 和 & 货币。

我想对“&currency”进行编码,这样浏览器就不会将 &curren 转换为 ¤。 谢谢

【问题讨论】:

  • 你看到了别的东西。添加更多详细信息。
  • @IgnacioVazquez-Abrams 如果我回显 API 字符串,它会将 &curren 打印到 ¤ 。但如果我查看 HTML 源代码,它看起来还不错。所以我认为我正在寻找正确的东西。我可以添加哪些详细信息?
  • &amp;curren 替换为&amp;amp;curren;。这不是程序化的,但它会暂时完成这项工作。
  • 这不应该只是输出的问题吗?不是实际的呼叫/响应……
  • @Ignacio Vazquez-Abrams 您的解决方案在物理上完成了这项工作,但 API 显示错误,说无效请求,并提供与货币部分相对应的错误代码。 :( 你知道 htmlentities 吗?我可以在这里使用吗?抱歉,我不熟悉这个。

标签: php html html-escape-characters


【解决方案1】:

PHP 没有转换任何东西。

浏览器 正在将&amp;current 转换为¤t 以进行显示。如果您想查看$call 在浏览器中 是什么,那么您需要用htmlentities 包装它,但这会专门对字符进行编码,以便原始$call 显示在浏览器中。

但是,在将字符串$call 传递给hash_call 之前,您不应对其进行任何操作。

请记住,原始字符串与浏览器显示的内容之间存在很大差异。

【讨论】:

  • 适用于大多数实际用途,但不幸的是在这里不起作用。为什么会这样:我做了一个测试。 &Current 将在浏览器中显示为 &Current 本身。所以,如果我使用 $call="...&Currency=USD&...",错误代码会显示 'currency' 参数不能为空。所以我猜服务器在翻译方面也发现了同样的问题。
  • 这是一个巨大的假设,而且可能不正确。是否有关于您尝试调用的服务的文档?
  • 是的,我想我也有同样的想法。解释可能不是问题。感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 2021-02-16
  • 2013-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-17
  • 1970-01-01
相关资源
最近更新 更多