php.ini';s上载\u最大\u文件大小是否强制?

php.ini';s上载\u最大\u文件大小是否强制?,php,apache,fastcgi,php-ini,Php,Apache,Fastcgi,Php Ini,在查看了关于upload\u max\u filesize的内容后,我开始怀疑:既然ini\u get只是返回原始字符串值(例如“15M”),那么哪个组件实际读取该值,然后使用它来限制上载?是Apache还是CGI引擎?还是由基本的PHP运行时来处理 对于前者,我假设可以服务于PHP页面的大多数软件都有一种方法,将ini值转换为字节(或一些机器可用的整数),然后在POST操作期间超过此限制时通知PHP。真的是这样吗?(可能是PHP先转换字符串?) TL;DR:哪个组件负责提取上传最大大小值并将其

在查看了关于
upload\u max\u filesize
的内容后,我开始怀疑:既然
ini\u get
只是返回原始字符串值(例如“15M”),那么哪个组件实际读取该值,然后使用它来限制上载?是Apache还是CGI引擎?还是由基本的PHP运行时来处理

对于前者,我假设可以服务于PHP页面的大多数软件都有一种方法,将ini值转换为字节(或一些机器可用的整数),然后在POST操作期间超过此限制时通知PHP。真的是这样吗?(可能是PHP先转换字符串?)

TL;DR:哪个组件负责提取
上传最大大小
值并将其传递给执行机制?或者:这个设置是否确实严格允许DIY实现这个限制


我问的原因:中给出的答案有些不令人满意,因为它们基本上都建议使用不同的“此处粘贴此代码”块来转换字符串。缺少的是关于已经为PHP执行此操作的内部机制的位置的任何信息,以便它/它们可以直接使用,或者至少可以忠实地模拟。

在我看来很有可能,这取决于您如何运行PHP,而不取决于您如何运行PHP:如果请求通过
HTTPPOST
发出,则调用相应的处理程序执行检查。Grep for
SAPI_POST_HANDLER_FUNC
。@zerkms看起来实际的限制本身可以归结为main/rfc1867.c中的内容,即
if(PG(upload_max_filesize)>0&(zend_long)(total_bytes+blen)>PG(upload_max_filesize)){/*complaint*/}
。我认为这与PHP的全局可访问INI值有关,但我目前无法确定像
zend_long PG(zend_long someInput)
这样的东西是在哪里定义的……我不确定您当前的问题是什么。