2017-02-14 83 views
0

我使用Wampserver2.2,Symfony 2.5和PHP 5.3.13,我創建一個文件瀏覽器。Scandir()與getParameter Symfony 2

掃描我的目錄其實我在我的showAction()在我的DefaultController:

而且它的偉大工程!

$dir = \\\\servername\Dossiers Projet\Path\to\Directory 
$clients = scandir($dir); 

我想所以在我config.yml到參數路徑目錄:

parameters: 
    chemin_clients: \\\\servername\Dossier Projets\Path\to\Directory 

我也已經測試:

parameters: 
    chemin_clients: '\\\\servername\Dossier Projets\Path\to\Directory' 

而且新的showAction():

$dir = $this->container->getParameter('chemin_clients'); 
$clients = scandir($dir); 
var_dump($clients); 

var_dump($dir);回報string '\\\\servername\Dossier Projets\Path\to\Directory'

var_dump($clients);回報布爾FALSE

警告:SCANDIR(\\服務器\卷宗謨\路徑\到\目錄)[function.scandir]:未能打開目錄:沒有這樣的文件或目錄中

我不知道有什麼問題.. 非常感謝!

回答

0

scandir()(和opendir())函數在失敗時返回FALSE - 如果目錄不是目錄資源,則返回布爾型FALSE。 問題是由於Windows的Apache服務對共享和管道等網絡資源的訪問有限,因爲它沒有憑據,必須使用空會話進行連接 - 所以\\\\servername\Dossier Projets\Path\to\Directory路徑不是有效的目錄資源用於由Apache服務處理的PHP。

您可以設置NullSessionPipesNullSessionShares值,用於指定的管道和共享到空會話可以在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters註冊表鍵連接,也可以將REG_DWORD值RestrictNullSessAccess=0添加到關鍵允許所有空會話訪問該機器上創建的所有管道和共享(當然,請考慮風險)。

+0

好吧,我想我知道了..但爲什麼如果我把路徑放在showAction'$ dir = \\\\ server \ path \ to \ dir; $ clients = scandir($ dir); var_dump($ clients);'IT WORKS ... –