размер каталога из виртуального каталога на удаленном сервере

#php #curl

#php #curl

Вопрос:

Я хочу получить свойства или просто размер каталога, который находится на удаленном сервере, поэтому путь должен состоять из IP / виртуального каталога / хранилища данных

 http://192.169.1.5/MyVirtualDir/MyData/
  

Я пробовал это с curl и php.

     $remoteFile = "192.168.1.5/MyVirtualDir/MyData/";
$ch = curl_init($remoteFile);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); //not
$data = curl_exec($ch); curl_close($ch); if ($data === false) { echo 'cURL failed'; exit; }

$contentLength = 'unknown';
$status = 'unknown';
if (preg_match('/^HTTP/1.[01] (ddd)/', $data, $matches)) {
  $status = (int)$matches[1];
}
if (preg_match('/Content-Length: (d )/', $data, $matches)) {
  $contentLength = (int)$matches[1];
}

echo 'HTTP Status: ' . $status . "n";
echo 'Content-Length: ' . $contentLength;


ERROR:scandir() [function.scandir]: connect() failed: No connection could be made because the target machine actively refused it
  

Комментарии:

1. Что это за сервер? Общий сетевой ресурс Windows / samba? Или HTTP-сервер? Вам нужно знать, что curl в основном предназначен для HTTP / FTP. Таким образом, вы, возможно, просто добавили код для своей проблемы, который делает что-то совершенно другое. Как вы думаете, почему это решает вашу проблему?

2. Вы не можете этого сделать. Вам «не разрешено» знать «каждый» файл в этом каталоге… Что, если есть некоторые файлы, на просмотр которых у вас нет разрешения? Как они будут вычисляться? — однако взгляните на это примечание: php.net/manual/en/function . размер файла.php#94566