假设我在远程服务器中设置了cms。是否可以通过外部php脚本获取index.php文件的实际物理大小而无需运行cms?
无法使用file_get_contents(),因为这将为我返回整个主页。我只需要索引文件的物理文件大小。这甚至可能吗?
答案 0 :(得分:1)
您可以在远程服务器上放置一个脚本,然后从您的网络服务器调用它。
远程文件可能类似,您可以使用http://remote-serv.er/filename.php?f=file-to-get-size-of.php
调用它<?php
if(isset($_GET['f']) && !empty($_GET['f'])) {
if(file_exists($_GET['f'])) {
echo(filesize($_GET['f']));
}
}
?>
答案 1 :(得分:0)
总的来说 - 没有。要获取PHP文件本身的文件大小(与执行PHP时生成的HTML相反),您需要访问托管该文件的计算机的文件系统。信息不会通过HTTP公开。
如果您具有该访问权限,则可以使用filesize
来获取信息。
答案 2 :(得分:0)
幸运的是,这是不可能的。像filesize()
这样的函数只会出于显而易见的原因处理本地文件系统上的文件。
如果你可以访问远程文件的物理文件大小,你也可以处理其他操作(比如读取普通文件)到一个不太安全的远程文件,是吗?
但是,如果您对远程服务器有物理访问权限,那么使用PHP连接它就没有问题。
PHP提供了使用SSH连接到远程服务器的功能。
。使用它也很容易(但不一定非常方便)。进一步阅读:
如果由于某种原因,您无法通过SSH连接到服务器,但安装了FTP服务器,那么PHP提供了一个用于处理文件传输协议的界面。
进一步阅读:
我确定如果你愿意,你可以找到另一堆连接到远程服务器的可能性。我选择了SSH和FTP,因为它们很常见,即使是最共享的托管软件包也可以通过它们进行访问。
请注意:连接到远程服务器只是为了获取文件的文件大小几乎是一种矫枉过正。确保优势克服了它的缺点。
@thedom provided a good example如何提供一个界面来处理远程服务器上的文件,而无需通过SSH或FTP连接它。