我必须构建函数来扫描目录中的所有文件夹,子文件夹和文件。如果它是我自己的mac目录,我现在能够做到这一点。
$parent_link = '/Users/myusername/Downloads';
$directory = dirToArray($parent_link);
var_dum($directory);
function dirToArray($dir) {
$result = array();
$cdir = scandir($dir);
foreach ($cdir as $key => $value)
{
if (!in_array($value,array(".","..")))
{
if (is_dir($dir . DIRECTORY_SEPARATOR . $value))
{
$result[$value] = dirToArray($dir . DIRECTORY_SEPARATOR . $value);
//var_dump($result[$value]);
}
else
{
$result[] = $value;
}
}
}
return $result;
}
然而,PHP如何访问Mac上的共享文件夹?
现状:
我可以使用finder(有权限)访问Mac上的共享文件夹。
该文件夹当前由mac服务器(LAN)共享。
php安装在我的电脑上。
答案 0 :(得分:0)
我改变了访问共享服务器的方法。而不是通过改变路径强迫它访问共享文件夹(我仍然无法弄明白),我使用PHP ftp。工作代码如下:
$hostname = '192.168.X.X';
$username = 'username';
$password = 'password';
$conn_id = ftp_connect($hostname);
$login = ftp_login($conn_id, $username, $password);
$parent_link = 'Document';
if (!$conn_id) {
echo 'Wrong server!';
exit;
} else if (!$login) {
echo 'Wrong username/password!';
exit;
} else {
$directory = dirToArray($conn_id, $parent_link);
var_dump($directory);
}
function dirToArray($ftpConnection, $dir) {
$result = array();
$cdir = ftp_nlist($ftpConnection, $dir);
foreach ($cdir as $key => $value)
{
$subs_value = substr($value, strlen($dir) + 1);
// assuming its a folder if there's no dot in the name
if (strpos($value, '.') === false) {
$result[$subs_value] = dirToArray($ftpConnection, $value);
}
else
{
$result[] = $subs_value;
}
}
return $result;
}