2012-09-19 5 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에서 배열 그렙을 채우십시오. file_exists는 작동하지 않습니다. 그런 다음 하드 코딩하여 결과를 확인하십시오. 왜 같은 값을 반환하는 명령을 사용하여 배열을 poplulate하면 ​​file_exists가 작동하지 않습니다. 각 과제에 대한 의견이있을 때마다 다음을 시도하십시오. – user1683269

+0

#!/usr/bin/php -q user1683269

답변

1

그것은해야하지 :

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

대신 :

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

아니요, PHP 스크립트 파일을 테스트하지 않고/home/steve/data/test_file에있는 파일을 테스트하고 있습니다. – user1683269

+0

op가 파일 이름이 "test_file"인 것을 보여주는 ls 명령의 출력을 보여 줬습니다. –

1

당신은 또한해야 할 수도 있습니다 testarray

전에

if(file_exists("/home/steve/data/{$testarray[$i]}")) {** 
당신은 $ 누락 된

시도 이것을 감싸는 두 개의 변수를 사용하고 있기 때문에 대괄호로 묶어야합니다. 그래서 $ {testarray [$ i]}

+0

감사합니다. 추가 한 후에 차이가 없습니다. 어떤 이유로 어레이가 채워지는 방법입니다. 파일에서 이름을 하드 코딩하면 제대로 작동합니다. 내가 볼 수있는 한 배열 값은 다음 $ appserver [$ i] ='grep $ ip [2]/etc/hosts | awk '{print $ 2}''를 사용하여 다른 값을 가질 것입니다. 실제로 값을 할당하여 appserver [$ i]에 동일한 이름을 할당하면 file_exists가 작동합니다. – user1683269

0

if 절에 testarray 앞에 $이 누락되었습니다. 사용해보기 :

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

''/ home/steve/data/$ testarray [$ i] ''도 작동합니다.) – raina77ow

+0

감사합니다. 아직도 작동하지 않았다. – user1683269

+0

파일이 실제로 존재합니까? if 앞에 if가 무엇입니까? – Horen

관련 문제