我正在尝试创建并保存一个文件到我的站点根目录,但我不知道它在哪里创建了这个文件,因为我看不到任何东西。如果可能的话,我需要每次覆盖该文件。
这是我的代码:
$content = "some text here";
$fp = fopen("myText.txt","wb");
fwrite($fp,$content);
fclose($fp);
如何将其设置为保存在根目录下?
我正在尝试创建并保存一个文件到我的站点根目录,但我不知道它在哪里创建了这个文件,因为我看不到任何东西。如果可能的话,我需要每次覆盖该文件。
这是我的代码:
$content = "some text here";
$fp = fopen("myText.txt","wb");
fwrite($fp,$content);
fclose($fp);
如何将其设置为保存在根目录下?
它创建的文件与你的脚本在同一个目录下。尝试使用这个方法代替。
$content = "some text here";
$fp = fopen($_SERVER['DOCUMENT_ROOT'] . "/myText.txt","wb");
fwrite($fp,$content);
fclose($fp);
DOCUMENT_ROOT
的环境变量。这意味着路径是动态的,并且可以在服务器之间移动而不会影响代码。<?php
$fileLocation = getenv("DOCUMENT_ROOT") . "/myfile.txt";
$file = fopen($fileLocation,"w");
$content = "Your text here";
fwrite($file,$content);
fclose($file);
?>
这个问题早在多年前就被提出过,但是现在我们可以用PHP5或更新版本来进行更现代化的方法。
$filename = 'myfile.txt'
if(!file_put_contents($filename, 'Some text here')){
// overwriting the file failed (permission problem maybe), debug or log here
}
file_put_contents
是自PHP5以来可用的内置函数。
file_put_contents文档
fopen()
函数将在执行该命令的文件所在目录中打开一个资源。换句话说,如果您只是运行文件~/test.php,则脚本将创建~/myText.txt。
如果您使用任何URL重写(例如在MVC框架中),这可能会有点混乱,因为它很可能会在包含根index.php文件的目录中创建新文件。
此外,您必须设置正确的权限并可能需要在写入文件之前进行测试。以下内容将帮助您进行调试:
$fp = fopen("myText.txt","wb");
if( $fp == false ){
//do debugging or logging here
}else{
fwrite($fp,$content);
fclose($fp);
}
$fp = fopen("/myText.txt","wb");
。 - Vinayak Garg