为什么PHP自动html解码我的POST?

时间:2011-05-17 10:28:00

标签: php post decode

我正在使用Zend Framework进行项目。为什么当我发出POST请求并通过$this->_request->getParams()在控制器中获取params时,它显示未解码的值?例如,我的HTML表单中的Speakers & keyboards字符串将从PHP中的getParams()检索为Speakers & keyboards

PHP不会对每个发布的值进行自动编码吗?

3 个答案:

答案 0 :(得分:2)

  

嗨约翰,谢谢你的暗示!我认为这是问题,因为我正在制作一个AJAX POST请求,它从页面HTML中获取数据。所以我最好在发送请求之前使用类似urlDecode()的内容......您怎么看?

问题在于,您发送的是HTML而且需要文本。

当您从页面获取内容时,获取文本而不是HTML。所以不要使用innerHTML或jQuery的.html()。获取textNode并读取其data属性,或使用jQuery的.text()

答案 1 :(得分:1)

因为没有理由这样做。

对数据进行编码以进行传输,然后再次进行解码。 HTML不是用于传输的编码。

期望接收HTML的唯一原因是,如果发送了HTML,并且如果发送了HTML,那么(推测)HTML是需要的。转换为文本通常不会成为下一步发生的事情。

答案 2 :(得分:1)

PHP对转义的内容进行自动编码,而不是HTML实体中的内容。