2012-07-01 48 views
1

我正在嘗試使用PHP創建硬連接。我知道有三種鏈接:符號鏈接,硬鏈接和目錄連接(目錄的硬鏈接)。PHP中的目錄連接點

在PHP中,符號鏈接是symlink()函數,硬鏈接是link(),但是對於目錄結點呢?

我需要將它用於Web應用程序,而符號鏈接對我來說還不夠。

感謝

+0

這是什麼操作系統? –

+0

目前我在Windows 7上運行開發服務器,但生產環境是Centos(Linux) –

回答

1

目錄連接是NTFS特有的功能。 Linux中沒有目錄連接。有directory-binding mounts(查找「綁定掛載」),它提供了類似的功能,但它們需要root訪問權限。

+0

不幸的是,我沒有root權限訪問生產服務器。不管如何,我一直在問如何用PHP創建目錄連接,我並不在乎它是否特定於Windows。 –

+0

在Windows上,您可能需要調用[external utility](http://technet.microsoft.com/en-us/library/cc753194(WS.10).aspx)。儘管如此,一旦將代碼移動到CentOS生產服務器,這將無法正常工作。 – lanzz

1

您不能創建硬鏈接(或「目錄連接」)在Linux目錄,它不被支持的操作系統。我不知道在Windows中是否可以使用link,但它應該像嘗試一樣簡單。

+0

從我所知我無法使用'link()'作爲目錄。 –

2

我也有類似的問題,因爲我是在Windows系統上的具體運行,我所做的:

exec('mklink "' . $linkLocation . '" "' . $linkTarget . '" /J') 

,成功的結果看起來是這樣的:

Junction created for C:\...\... <<===>> C:\...\... 
0

我用這個簡單的功能,它正在與Windows一起工作。

<?php 
function makeSymLink ($target, $link) 
{ 
    exec('mklink /j "' . str_replace('/', '\\', $link) . '" "' .str_replace('/', '\\', $target) . '"'); 
    } 
?>