2010-06-16 79 views
1

如果我不知道公共网页目录,有没有办法我的脚本能够确定web目录,使脚本会知道将文件上传该目录?使用ftp_ *,我如何确定公共html目录?

+0

编辑您刚才的问题,而不是创造了同样的事情,一个新的... – animuson 2010-06-16 08:30:22

+0

@animuson:这是一个不同的问题... – Rob 2010-06-16 08:41:55

+0

他们可以很容易地被组合。 – animuson 2010-06-16 08:48:07

回答

3

如果我不知道公共网页目录,有没有办法我的脚本可以确定网络目录,以便脚本知道将文件上传到哪个目录?

如果您正在讨论使用FTP确定要连接到的远程主机的Web根目录,那么答案是否定的,绝对不是。

您使用的登录可以有一个根设置从什么虚拟主机(S)在服务器上配置完全不同的FTP帐户。他们没有任何关系,也没有办法互动。

通常会有一些重叠(例如FTP目录是像/htdocs/domain.com/但没有模式,你可以依靠。

0

你wan't知道脚本运行的机器的文档根?在这种情况下,只需使用$ _SERVER ['DOCUMENT_ROOT']。

我不知道如何从远程主机接收此类信息(如果可能的话)

+0

我需要远程主机文档根目录 – Rob 2010-06-17 04:40:35

1

你希望有一个“商业上可行”的办法,或者你想学吗?这个答案适用于第二种情况:)

您可以通过FTP上传一个带有特殊名称的文件(例如,fjskjfakdjfklajf.txt)(您的PHP脚本也可能会这样做,例如一些卷曲调用)。然后,您可以运行另一个PHP脚本,它将尝试遍历文件系统并查找该文件。您需要列出每个目录的内容(请参阅opendir),并检查每个条目是否是目录或文件。如果它是一个文件,并且它是你的文件,那么你喜欢FTP根目录。您可能对服务器的访问权限有限,因此搜索操作可能不会持续太久。您可以从您的脚本所在的当前目录开始,尝试下降到每个目录,然后移至'..'

您当前的目录是:$ currentDir = dirname(FILE);

+1

我认为你可以稍微逆转一下问题:假定FTP目录是可以在Web上查看的,但是您不知道Web路径。我认为OP意味着一个FTP目录是Web根目录,但他不知道哪一个。在这种情况下,您可以将测试文件上传到dir,通过http://example.com/fjskjfakdjfklajf.txt进行测试,如果找不到,请将其移至另一个目录并重复,直到找到。 – 2010-06-22 17:34:59

+0

+1这是最接近的方法。我认为不可能做得更好。 – 2010-06-24 21:20:18

+0

难怪共享主机出现问题时,人们会以各种可以想象的方式滥用系统。 – 2010-06-25 16:02:01

0

Rob -

您是否只能通过FTP访问服务器?

你已经可以访问Web根(或方式来增加PHP脚本),但想知道他们是完全合格的路径?

如果第二个问题的答案是肯定的,你可以做@Treur建议的事情,然后安装一个返回DOCUMENT_ROOT值的php脚本,然后从你的FTP客户端使用它。

我想知道你在想什么做的,是什么情况,会有所帮助。 :)