0

我早些时候发布了这个问题,但我现在使用了反馈并简化了 php 程序以显示它仍然失败的原因。使用带有数组的 file_exists 总是失败:这是我写的一个简单的程序,它显示了失败:

[root@dsmpp1 steve]# ls -l data
 total 4 -rw-r--r-- 1 root root 0 Sep 19 11:41 test_file 
[root@dsmpp1 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"; } `    
[root@dsmpp1 steve]# php -q test_file.php 
testarray test_file 
file does not exist 
[root@dsmpp1 steve]#

如前所述,我在目录和文件名周围使用了双引号,但它仍然无法正常工作。

4

3 回答 3

1

不应该是:

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

代替:

$testarray[$i]="test_file";
于 2012-09-19T16:02:38.597 回答
1

尝试

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

您在 testarray 之前缺少 $

您可能还需要将其括在括号中,因为您使用的是两个变量。所以使用 {$testarray[$i]}

于 2012-09-19T16:03:29.973 回答
0

$在 if 子句中缺少一个 before 测试数组。尝试这个:

if(file_exists("/home/steve/data/".$testarray[$i])) {
于 2012-09-19T16:03:40.797 回答