PHP创建txt文件并将其保存到根目录


73

我正在尝试创建文件并将其保存到站点的根目录,但是我不知道它在哪里创建文件,因为看不到任何文件。而且,如果可能的话,我需要每次都覆盖该文件。

这是我的代码:

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

如何设置保存在根目录下?


在我看来,这很对。只要脚本位于您的Web根目录中,就可以了。唯一可以阻止它的是您的权限。
seanbreeden '02

1
如果您有权限,请尝试$fp = fopen("/myText.txt","wb");
Vinayak Garg,2012年

除了是一个坏主意和看似黑客的行为外,请确保指定完整路径并具有足够的权限。
米哈伊尔(Mikhail)

7
在网络根目录上设置777是一个非常糟糕的主意。
seanbreeden '02

Answers:


136

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

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

6
仅需注意:这需要对要写入的目录具有写权限。
mboy16年

我无法将内容写入该文件。我该怎么做?
huykon225 '17

15

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

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

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);
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.