PHP访问Mac上的共享文件夹

时间:2014-05-28 01:14:50

标签: php osx-mavericks shared-directory

我必须构建函数来扫描目录中的所有文件夹,子文件夹和文件。如果它是我自己的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安装在我的电脑上。

1 个答案:

答案 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; 
}