2012-09-19 64 views
0

我之前發佈了這個問題,但我現在已經使用了反饋並簡化了php程序以顯示它仍然失敗。 使用file_exists使用數組總是失敗: 下面是一個簡單的程序,我寫的,顯示了失敗:php file_exists不適用於數組

[[email protected] steve]# ls -l data 
total 4 -rw-r--r-- 1 root root 0 Sep 19 11:41 test_file 
[[email protected] steve]# cat test_file.php 
`#!/usr/bin/php -q 
    <?php 
    $i=1; 
    $testarray=array(); 
    $testarray[$i]="test_file"; 
    echo "testarray $testarray[$i]\n"; 
    **if(file_exists("/home/steve/data/testarray[$i]")) {** 
    echo "file exists\n"; } 
    else { echo "file does not exist\n"; } `  
[[email protected] steve]# php -q test_file.php 
testarray test_file 
file does not exist 
[[email protected] steve]# 

我用周圍的目錄和文件名的雙引號作爲較早提出 ,它仍然是不加工。

+0

謝謝大家的評論。這裏有一個簡單的程序,任何人都可以嘗試,你會得到我得到的結果。每個/ etc/hosts文件都有一個用於ip 127.0.0.1的「localhost」條目。嘗試在IP上填充數組grepping。 file_exists不起作用。然後努力編碼並查看結果。爲什麼當我使用一個返回相同值的命令來排列數組時,file_exists不起作用。請嘗試以下操作,並在每個任務中不加註釋。 – user1683269

+0

#!/ usr/bin/php -q <?php $ i = 1; $ hostname = array(); $ hostname [$ i] ='grep 127.0.0.1/etc/hosts | awk'{print $ 3}''; #$ hostname [$ i] =「localhost」; echo「hostname [$ i] = $ hostname [$ i] \ n」; if(file_exists(「/ home/steve/data/$ hostname [$ i]」)){ echo「不做任何應用服務器文件存在\ n」; } else { echo「沒有文件存在創建一個\ n」; $ touch ='touch/home/steve/data/$ hostname [$ i]'; } ?> – user1683269

回答

1

它不應該是:

$testarray[$i]="test_file.php"; 

代替:

$testarray[$i]="test_file"; 
+0

不,我沒有測試php腳本文件,我正在測試/ home/steve/data/test_file中的文件。 – user1683269

+0

該op顯示ls命令的輸出,顯示該文件被命名爲「test_file」 –

1

嘗試

if(file_exists("/home/steve/data/{$testarray[$i]}")) {** 

你失蹤的前$ testarray

您可能還需要把它包裹起來括號,因爲你使用兩個變量。所以使用{$ testarray [$ i]}

+0

是的,謝謝你,添加$後沒有什麼區別。出於某種原因,它是如何填充數組。當硬編碼文件中的名稱存在時,它可以正常工作。據我可以看到,當我使用下面的$ appserver [$ i] ='grep $ ip [2]/etc/hosts | awk'{print $ 2}'填充數組值時,數組的值必須有所不同。如果我通過實際分配file_exists的值來爲appserver [$ i]分配相同的名稱。 – user1683269

0

您在testarray if子句之前缺少$。試試這個:

if(file_exists("/home/steve/data/".$testarray[$i])) { 
+0

''/ home/steve/data/$ testarray [$ i]「'也可以。 ) – raina77ow

+0

謝謝你早些時候嘗試過。仍然沒有工作。 – user1683269

+0

那麼,文件確實存在?以及if前面的**是什麼? – Horen