PHP在与脚本相同的目录中创建文件

Posted

技术标签:

【中文标题】PHP在与脚本相同的目录中创建文件【英文标题】:PHP create file in same directory as script 【发布时间】:2018-07-05 13:44:20 【问题描述】:
$content = "some text here"; 
$fp = fopen("myText.txt","w"); 
fwrite($fp,$content); 
fclose($fp);

上面的代码在 php 脚本所在的文件夹中创建了一个文件。但是,当 Cpanel Cron 调用脚本时,会在主目录中创建文件。

我希望在 php 脚本所在的同一文件夹中创建文件,即使它由 cron 运行。 怎么做?

【问题讨论】:

您应该在 PHP 代码中使用文件夹的完整路径 尝试__DIR__ constant 访问当前脚本目录或basename( __FILE__),如果你正在运行旧的PHP解释器 【参考方案1】:

尝试使用__DIR__ . "/myText.txt" 作为文件名。http://php.net/manual/en/language.constants.predefined.php

【讨论】:

【参考方案2】:

使用dirname(__FILE__) 内置宏尝试类似的操作。

<?php

$content = "some text here";
$this_directory = dirname(__FILE__);
$fp = fopen($this_directory . "/myText.txt", "w");
fwrite($fp, $content); 
fclose($fp);

?>

__FILE__ 是当前运行的 PHP 脚本的完整路径。 dirname() 返回给定文件的包含目录。因此,如果您的脚本位于 /mysite.com/home/dir/prog.phpdirname(__FILE__) 将返回...

/mysite.com/home/dir

因此,fopen 语句中的附加“./myText.txt”。我希望这会有所帮助。

【讨论】:

以上是关于PHP在与脚本相同的目录中创建文件的主要内容,如果未能解决你的问题,请参考以下文章

在与其他源 tcl 文件相同的目录中创建 tcl 包的问题

在与位于项目目录中的 .jar 文件相同的文件夹中创建一个文件

Bash 脚本实例:获取符号链接的目标位置

如何在 dev c++ 中创建头文件

bash 脚本,在目录中创建所有文件的数组

用于在存储库测试中创建相同表的 Sql 脚本