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

Я новичок в PHP.

У меня есть два разных хоста, и я хочу, чтобы моя страница php в одном из них показывала мне список каталогов другого. Я знаю, как работать с opendir () на одном хосте, но можно ли использовать его для доступа к другой машине?

заранее спасибо

Вы можете использовать FTP-возможности PHP для удаленного подключения к серверу и получения списка каталогов:

// set up basic connection $conn_id = ftp_connect('otherserver.example.com'); // login with username and password $login_result = ftp_login($conn_id, 'username', 'password'); // check connection if ((!$conn_id) || (!$login_result)) { echo "FTP connection has failed!"; exit; } // upload the file $upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY); // check upload status if (!$upload) { echo "FTP upload has failed!"; } else { echo "Uploaded $source_file to $ftp_server as $destination_file"; } // Retrieve directory listing $files = ftp_nlist($conn_id, '/remote_dir'); // close the FTP stream ftp_close($conn_id); 

Пытаться:

 <?php $dir = opendir('ftp://user:pass@domain.tld/path/to/dir/'); while (($file = readdir($dir)) !== false) { if ($file[0] != ".") $str .= "\t<li>$file</li>\n"; } closedir($dir); echo "<ul>\n$str</ul>"; 

Мне не удалось заставить предложения FTP работать, поэтому я взял более нетрадиционный маршрут, в основном он захватывает html со страницы «Index of» и извлекает имена файлов.

Главная страница:

Индекс / файлов

  • Родительский каталог
  • 1.jpg
  • 2.jpg
  • Код экстракции:

      $dir = "http://www.yoursite.com/files/"; $contents = file_get_contents($dir); $lines = explode("\n", $contents); foreach($lines as $line) { if($line[1] == "l") { // matches the <li> tag and skips 'Parent Directory' $line = preg_replace('/<[^<]+?>/', '', $line); // removes tags, curtousy of http://stackoverflow.com/users/154877/marcel echo trim($line) . "\n"; } }