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

时间:2012-02-13 17:45:30

标签: php

我正在尝试创建并将文件保存到我的网站的根目录,但我不知道它创建文件的位置,因为我看不到任何...我需要提交文件,如果可能的话,每次都被覆盖< / p>

以下是代码:

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

如何将其设置为保存在根目录上?

4 个答案:

答案 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 以来的内置函数。

Documentation for file_put_contents