2012-02-13 62 views
48

我想创建并保存文件到我的网站的根目录,但我不知道它在哪里创建文件,因为我看不到任何...我需要到文件将被覆盖每次如果可能的话太PHP创建并保存到根目录的txt文件

下面是代码:

$content = "some text here"; 
$fp = fopen("myText.txt","wb"); 
fwrite($fp,$content); 
fclose($fp); 

我怎样才能将它保存在根?

+0

这对我来说很合适。只要该脚本位于你的网站根目录下,它就可以。唯一会阻止它的是你的权限。 – seanbreeden 2012-02-13 17:49:24

+1

如果您有权限尝试'$ fp = fopen(“/ myText.txt”,“wb”);' – 2012-02-13 17:51:13

+0

除了是一个坏主意,看似hackery,只要确保指定完整路径,并有足够的权限。 – Mikhail 2012-02-13 17:51:48

回答

90

它在与脚本相同的目录中创建文件。试试这个。

$content = "some text here"; 
$fp = fopen($_SERVER['DOCUMENT_ROOT'] . "/myText.txt","wb"); 
fwrite($fp,$content); 
fclose($fp); 
+3

只需要注意:这需要您写入目录的写入权限。 – mboy 2016-11-15 02:04:51

+0

我无法将内容写入该文件。我该怎么做? – huykon225 2017-12-12 03:12:35

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); 
} 
9

如果您在Apache上运行PHP,那么您可以使用名为DOCUMENT_ROOT的环境变量。这意味着路径是动态的,并且可以在服务器之间移动而不会混淆代码。

<?php 
    $fileLocation = getenv("DOCUMENT_ROOT") . "/myfile.txt"; 
    $file = fopen($fileLocation,"w"); 
    $content = "Your text here"; 
    fwrite($file,$content); 
    fclose($file); 
?> 
相关问题