2013-10-15 2 views
-1
error_reporting(E_ALL); 
ini_set('display_errors','1'); 
if (file_exists('/../_config.php')) { 
    $f = fopen('/../_config.php', 'w') or die($php_errormsg); 
    fwrite($f, '<?php'); 
    fclose($f); 
} 
else { 
    echo 'file doesnt exist'; 
} 

결과 :아무것도fopen이 파일에 쓰지 않습니까?

은 내가 _config.php 파일을 확인하고 비어 있습니다. <?php을 포함해야합니다.

오류가 없습니다. & 코드가 전혀 죽지 않습니다.

권한 관련 문제입니까?

error_reporting(E_ALL); 
ini_set('display_errors','1'); 

$configFile = __DIR__ . '/../config.php'; 

echo $configFile, "\n"; 

if (file_exists($configFile)) { 
    $f = fopen($configFile, 'w') or die('cannot open file'); 
    fwrite($f, '<?php'); 
    fclose($f); 
} 
else { 
    echo 'file doesnt exist', "\n"; 
} 

대신 __DIR__ 당신이 dirname(__FILE__)를 사용할 수

하지만이 오래된 (죽은) PHP 버전에서만 필요하다 : 나는 7

+1

AFAIK'/../_ config.php' _cannot_ exist (한 수준 _ 루트 _ 경로보다) – Wrikken

+0

경로에 텍스트를 추가하여 테스트했는데 '파일이 존재하지 않습니다'라는 메시지가 나타납니다. –

+0

파일 경로가 확실히 문제를 일으킬 것입니다. '/../_ config.php'는 "루트에서 시작하여 한 레벨 위로 올라가서'_config.php'를 찾습니다. –

답변

1

사용 적절한 경로가 파일에 Windows에서입니다.

+0

그래서, 'echo $ configFile;'어떤 파일이 검사되고 있는지 보려면 어쩌면'/../'을 추가하거나 제거하십시오. –

+0

이제는 고마워했습니다. 그리고 파일을 썼다. 필자는 왜 file_exists가 MY 경로로 true를 반환 하는지를 이해해야합니다. –

+0

@ 조 칼일 : 당신 만이 거기에 당신이 이해하지 못하는 어떤 미친 문자열 경로를 쓰면 도움이되지 않습니다. 경로는 존재하는 루트 디렉토리를 나타냅니다. 그러나 그것은 파일이 아닙니다. 'file_exists' 클리어 상태의 PHP 매뉴얼 페이지는 디렉토리가 있는지를 검사합니다. 따라서 루트 디렉토리가 존재한다는 것을 확인했다는 사실을 축하 할 수 있습니다 :) - 간단히 말해서, 유닉스 시스템 상에 항상 존재하는 것을 확인했습니다. : D – hakre

관련 문제