Могу ли я использовать PHP opendir() для внешнего URL-адреса?

Возможный дубликат:
PHP - opendir на другом сервере

Что-то вроде этого:

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 и другие числа, затем я проверяю каталог на наличие этих чисел и возвращаю первую подпапку.


person TheBlackBenzKid    schedule 09.10.2012    source источник


Ответы (5)


Если вы хотите подключиться к облачным файлам в стойке, я бы предложил использовать API, расположенный по адресу https://github.com/rackspace/php-cloudfiles

$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');
person Scuzzy    schedule 09.10.2012

Это невозможно. На большинстве серверов список каталогов отключен, и он не отправляет список каталогов. opendir предназначен для локальных каталогов.

PHP - opendir на другом сервере

Вы можете получить доступ через ftp или что-то еще.

person René Höhle    schedule 09.10.2012

Нет. В URL-адресах нет понятия каталога.

URL-адрес может сопоставляться с каталогом в файловой системе сервера, но это сопоставление не раскрывается HTTP.

http://example/running_order_image/sale/587/ может дать вам HTML-документ со ссылками на все в каталоге на сервере, но вам придется получить к нему доступ, как и к любому другому ресурсу, а затем проанализировать HTML, чтобы получить URL-адреса этих ресурсов.

person Quentin    schedule 09.10.2012

Почему бы вам не посмотреть в спецификации?

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

Посмотрите в журнале изменений:

Путь 4.3.0 также может быть любым URL-адресом, который поддерживает список каталогов, однако только оболочка URL-адреса file:// поддерживает это в PHP 4.

Так что, если это работает, зависит от сервера, к которому вы приближаетесь. Я знаю, что мои серверы не позволят этого. ;-)

person Erwin Moller    schedule 09.10.2012

Попробуйте использовать FTP в PHP. Это позволит вам удаленно подключиться к серверу. Конечно, только если разрешено подключение по FTP.

person Juris Vaiders    schedule 09.10.2012