2013-10-15 6 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.

Абсолютно нет ошибок & код не умирает вообще.

Это проблема, связанная с разрешением? Я на ОС Windows 7.

+1

AFAIK '/../_ config.php' _cannot_ существует (один уровень _above_ корневой каталог?) – Wrikken

+0

Он существует, я просто протестировал его, добавив некоторый текст в путь, и он повторил« файл не существует ». –

+0

Ваш путь к файлу, безусловно, вызовет проблемы. '/../_ config.php' говорит:« Начните с корня, поднимитесь на один уровень и ищите '_config.php'. –

ответ

1

использовать правильный путь к файлу:

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 версии.

+0

так, 'echo $ configFile;' чтобы посмотреть, какой файл проверяется, возможно, добавьте или удалите '/../' –

+0

Это сработало сейчас, спасибо. и он написал файл. Мне нужно понять, почему это произошло, когда file_exists возвращает true с MY path. –

+0

@Jony Kale: Только вы пишете там какую-то сумасшедшую строку, которую вы не понимаете, не помогает. Ваш путь просто представляет корневой каталог, который существует. Но это не файл. В качестве справочной страницы PHP в состояниях 'file_exists', она проверяет, существует ли каталог. Поэтому вы можете поздравить себя с тем, что вы только что подтвердили, что корневой каталог существует :) - одним словом: вы отметили что-то, что всегда существует в системе unix. : D – hakre

Смежные вопросы