问题描述
我发送名为“param.name”的 POST 参数
如果我读 PHP://input 一切正常,但如果我尝试从数组 $_POST['param.name'] 中获取参数,它不存在,因为点被替换为下划线,我需要得到param 这种方式 $_POST['param_name'].
也许我应该调整 PHP 中的一些设置...
我使用 PHP 7.4.15
解决方法
这是 their official documentation 中提到的预期 PHP 行为。据我所知,由于与向后兼容性 ($_POST
) 相关的原因,PHP 在解析 register_globals
超全局变量时会应用此规则。
php://input
显示您的实际参数名称的原因是因为这是一个原始输入流,显示尚未被 PHP 解析的数据。 $_POST
数据被解析。
简而言之,避免在 PHP 输入参数命名中使用点符号或愿意实现自己的解析机制以支持它。