我可以在外部URL上使用PHP opendir()吗?

时间:2012-10-09 12:34:45

标签: php rackspace opendir akamai

  

可能重复:
  PHP - opendir on another server

这样的事情:

opendir(http://super.cdn.com/running_order_image/sale/587/)

opendir用于检查Rackspace Cloud Files Akamai存储桶的内容。

我正在循环这样的结构

587/
587/587_rubyred
587/587_rubyred/front.jpg
587/587_rubyred/back.jpg

我正在尝试返回587_rubyred部分。基本上我的MySQL查询循环通过587和834以及其他数字,然后检查目录中的那些数字并返回第一个子文件夹。

5 个答案:

答案 0 :(得分:3)

这是不可能的。大多数服务器都禁用了目录列表,并且没有发送目录列表,opendir用于本地目录。

PHP - opendir on another server

您可以通过ftp或其他方式访问。

答案 1 :(得分:2)

没有。 URL中没有目录的概念。

URL可能映射到服务器文件系统上的目录,但HTTP不会公开该映射。

http://example/running_order_image/sale/587/可能会为您提供一个HTML文档,其中包含指向服务器上某个目录中所有内容的链接,但您必须像其他任何资源一样访问它,然后解析HTML以获取这些资源的URL。 / p>

答案 2 :(得分:2)

如果您想连接到rackspace云文件,我建议您使用位于https://github.com/rackspace/php-cloudfiles的API

$auth = new CF_Authentication('<RACKSPACELOGIN>','<RACKSPACEKEY>');
$auth->authenticate();
$conn = new CF_Connection($auth);
$cloudFolder = $conn->get_container('<RACKSPACECONTAINER>');    
$cloudImages = $cloudFolder->get_objects();

foreach($cloudImages as $image)
{
  echo '<li>' . $image->name . '</li>';
}

编辑:您将能够执行以下

$cloudImages = $cloudFolder->get_objects(0,NULL,NULL,'587/587_rubyred');

答案 3 :(得分:0)

为什么不查看规格?

http://nl3.php.net/manual/en/function.opendir.php

查看更改日志:

4.3.0路径也可以是任何支持目录列表的URL,但只有file:// URL包装器在PHP 4中支持这个

因此,如果这有效取决于您接近的服务器。我知道我的服务器不会允许它。 ; - )

答案 4 :(得分:0)

尝试在PHP中使用FTP。这将允许您远程连接到服务器。当然只有允许通过FTP连接。