我正在尝试创建并将文件保存到我的网站的根目录,但我不知道它创建文件的位置,因为我看不到任何...我需要提交文件,如果可能的话,每次都被覆盖< / p>
以下是代码:
$content = "some text here";
$fp = fopen("myText.txt","wb");
fwrite($fp,$content);
fclose($fp);
如何将其设置为保存在根目录上?
答案 0 :(得分:112)
它在与脚本相同的目录中创建文件。试试这个。
$content = "some text here";
$fp = fopen($_SERVER['DOCUMENT_ROOT'] . "/myText.txt","wb");
fwrite($fp,$content);
fclose($fp);
答案 1 :(得分:12)
如果您在Apache上运行PHP,那么您可以使用名为DOCUMENT_ROOT
的环境变量。这意味着路径是动态的,可以在服务器之间移动而不会弄乱代码。
<?php
$fileLocation = getenv("DOCUMENT_ROOT") . "/myfile.txt";
$file = fopen($fileLocation,"w");
$content = "Your text here";
fwrite($file,$content);
fclose($file);
?>
答案 2 :(得分:0)
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);
}
答案 3 :(得分:0)
这个问题多年前就有人问过了,但这里是使用 PHP5 或更新版本的现代方法。
String: Test_[u'Net::Route Domain: RD2001']
Regex being used: regex_replace('.*: (.*)$', '\\1')
Output printing: Test_RD2001']
Expected Output: Test_RD2001
如果该文件不存在于该目录中,它将被创建,否则它将被覆盖,除非设置了 FILE_APPEND 标志。
$filename = 'myfile.txt'
if(!file_put_contents($filename, 'Some text here')){
// overwriting the file failed (permission problem maybe), debug or log here
}
是 PHP5 以来的内置函数。