PHP - opendir在另一台服务器上
问题描述:
我对PHP有点新鲜。PHP - opendir在另一台服务器上
我有两个不同的主机,我想我的PHP页面中的其中一个向我显示另一个目录列表。我知道如何在同一台主机上使用opendir(),但是可以使用它来访问另一台机器吗?
在此先感谢
答
你可以使用PHP的FTP Capabilities远程连接到服务器,并获得一个目录列表:
// 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:[email protected]/path/to/dir/');
while (($file = readdir($dir)) !== false) {
if ($file[0] != ".") $str .= "\t<li>$file</li>\n";
}
closedir($dir);
echo "<ul>\n$str</ul>";
答
Parent Directory
1.jpg
2.jpg
我无法得到FTP的建议工作,所以我采取了一个非常规的路线,基本上它从“索引”页面中抽取html并提取文件名。
索引页:
的索引/文件
提取代码:
$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";
}
}
没有抽象的“服务器”连接到。你必须指定某个**协议**,远程服务器支持并且你将要使用。 – 2011-03-13 23:08:48