我正在使用Zend Framework进行项目。为什么当我发出POST请求并通过$this->_request->getParams()
在控制器中获取params时,它显示未解码的值?例如,我的HTML表单中的Speakers & keyboards
字符串将从PHP中的getParams()检索为Speakers & keyboards
。
PHP不会对每个发布的值进行自动编码吗?
答案 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实体中的内容。