有没有什么办法让来自像函数返回字符串中的字节值ini_get('upload_max_filesize')和ini_get('post_max_size')的时候都用速记符号字节?例如从4M获得4194304?我可以破解一个这样做的功能,但如果没有一些内置的方法,我会感到惊讶.
Lig*_*ica 26
您链接的段落结束:
您不能在php.ini之外使用这些简写符号,而是使用整数值的字节.有关如何转换这些值的示例,请参阅ini_get()文档.
这会导致你这样的事情(我稍微修改过):
function return_bytes($val)
{
$val = trim($val);
if (is_numeric($val))
return $val;
$last = strtolower($val[strlen($val)-1]);
$val = substr($val, 0, -1); // necessary since PHP 7.1; otherwise optional
switch($last) {
// The 'G' modifier is available since PHP 5.1.0
case 'g':
$val *= 1024;
case 'm':
$val *= 1024;
case 'k':
$val *= 1024;
}
return $val;
}
Run Code Online (Sandbox Code Playgroud)
像这样使用它:
echo return_bytes("3M");
// Output: 3145728
Run Code Online (Sandbox Code Playgroud)
没有内置函数来执行此任务; 回想一下,实际上,INI设置是为在PHP 内部使用而设计的.PHP源使用与上面类似的功能.