将php filesize函数与GET变量一起使用

将php filesize函数与GET变量一起使用,php,file,Php,File,我试图使用filesize php函数在我使用的元标记中自动写入文件大小 我通常做的就是举个例子 <meta name="DC.format" content="<?= filesize($filename); ?> bytes"> 您将一个(无效)本地路径传递给filesize(),因此它会尝试在硬盘上解析该路径。这显然是失败的,因为查询参数使文件名无效 但是,它是URI的有效部分。因此,您可以启动HTTP请求并获取返回内容的大小: 请记住,此方法将触发HTTP请求

我试图使用filesize php函数在我使用的元标记中自动写入文件大小

我通常做的就是举个例子

<meta name="DC.format" content="<?= filesize($filename); ?> bytes">
您将一个(无效)本地路径传递给
filesize()
,因此它会尝试在硬盘上解析该路径。这显然是失败的,因为查询参数使文件名无效

但是,它是URI的有效部分。因此,您可以启动HTTP请求并获取返回内容的大小:


请记住,此方法将触发HTTP请求,这会对性能产生很大影响。

它不是一个文件。它是文件执行过程中的文本输出。你能做的最好的事情就是不使用HTTP函数/类而
strlen()
mb\u strlen()
,我认为:

<?= strlen(file_get_contents("http://www.example.com/index.php?locale=en_US")); ?>


文件\u get\u contents()
将使用HTTP请求。@ComFreek:是的,他们正在传递一个查询字符串。我想我有一个循环问题。由于index.php包含header.php,并且函数位于header.php中,因此当我要求计算文件大小时,它会再次转到header,从而重复函数,从不计算任何内容。我在想也许可以添加一个额外的$\u GET参数并对其进行识别。你觉得怎么样?我是按照我提到的那样做的:
有没有一种方法可以不用HTTP请求来计算它?这一个看起来比下一个复杂,你为什么推荐它?@mihail_ov好吧,因为这些是你的PHP文件,包含你的逻辑,你可以计算大小(触发一个内部请求;在内部“模拟”来自外部源的请求)。我建议不要使用Abracadver的解决方案,因为它总是下载文件!这对性能有严重影响。我提供的链接中的答案只执行一个“头”请求,该请求只返回一些元数据。
php
<meta name="DC.format" content="<?= filesize("index.php?locale=en_US"); ?> bytes">

resulting html
<meta name="DC.format" content="<br /><b>Warning</b>:  filesize():
stat failed for index.php?es=./&amp;en=./en/&amp;locale=en_US in
<b>D:\xampp\htdocs\casasenmeridabaspul.com-v2\header.php</b>
on line <b>87</b><br /> bytes">
<?= strlen(file_get_contents("http://www.example.com/index.php?locale=en_US")); ?>