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