Ответ 1
Создает файл в том же каталоге, что и ваш script. Попробуйте это вместо.
$content = "some text here";
$fp = fopen($_SERVER['DOCUMENT_ROOT'] . "/myText.txt","wb");
fwrite($fp,$content);
fclose($fp);
Я пытаюсь создать и сохранить файл в корневом каталоге моего сайта, но я не знаю, где он создает файл, так как я не вижу ни одного. И мне нужно, чтобы файл каждый раз перезаписывался, если это возможно.
Вот мой код:
$content = "some text here";
$fp = fopen("myText.txt","wb");
fwrite($fp,$content);
fclose($fp);
Как настроить сохранение в корне?
Создает файл в том же каталоге, что и ваш script. Попробуйте это вместо.
$content = "some text here";
$fp = fopen($_SERVER['DOCUMENT_ROOT'] . "/myText.txt","wb");
fwrite($fp,$content);
fclose($fp);
Если вы используете PHP на Apache, вы можете использовать переменную среды, называемую DOCUMENT_ROOT
. Это означает, что путь является динамическим и может перемещаться между серверами, не вникая в код.
<?php
$fileLocation = getenv("DOCUMENT_ROOT") . "/myfile.txt";
$file = fopen($fileLocation,"w");
$content = "Your text here";
fwrite($file,$content);
fclose($file);
?>
fopen()
откроет ресурс в том же каталоге, что и файл, выполняющий команду. Другими словами, если вы просто запускаете файл ~/test.php, ваш script создаст файл ~/myText.txt.
Это может немного запутать, если вы используете переписывание URL-адресов (например, в среде MVC), так как это, скорее всего, создаст новый файл в любом каталоге, в котором содержится файл root.php.
Кроме того, у вас должны быть установлены правильные разрешения и вы можете протестировать их перед записью в файл. Следующее поможет вам отладить:
$fp = fopen("myText.txt","wb");
if( $fp == false ){
//do debugging or logging here
}else{
fwrite($fp,$content);
fclose($fp);
}