【发布时间】:2026-02-01 01:35:01
【问题描述】:
我需要写文本文件,我试试这段代码
public function ResultsTrackingLogs( $event, $message ) {
$logsDir = dirname( __FILE__ ) . "/logs/Results Tracking/$event/";
$fh = fopen( $logsDir . "$event.txt", 'x' ) or die( "can't open file" );
fwrite( $fh, $message );
fclose( $fh );
}
$logsDir 转换为 E:\Dropbox\htdocs\Scrapers\this,除此之外,\$event\ 使每个事件都有自己的子文件夹。
无论如何我都会调整.. I.E /logs/Results Tracking/ .. 或 \logs\Results Tracking\..
仍然给我一个错误fopen(E:\Dropbox\htdocs\Scrapers\this\logs/Results Tracking/event1/event1.txt): failed to open stream: No such file or directory.
目录在那里,我也在那里创建了一个 .txt 文件,但没有找到。问题显然在于我如何描述我的目录结构。我该如何解决?我之前不想创建目录结构,我需要它来创建需要的文件夹。
【问题讨论】:
-
你给这个文件什么权限?您的脚本必须具有写入权限才能访问它。
-
错误信息里面真的写了
$incomingvalue吗?因为如果是这样,您的变量没有被插值,并且文件名中有文字字符串$incomingvalue。在这种情况下,您可能在单引号字符串而不是双引号字符串中声明了文件名。 -
我不明白如何在 Windows 中授予文件权限。当我使用
$logDir = dirname( __FILE__ ) . "\\logs/"; $fileName = $logDir . $event . " - " . date( "F j, Y - g_i_s A" ) . ".htm"; $fh = fopen( $fileName, 'x' ) or die( "can't open file" ); fwrite( $fh, $message ); fclose( $fh );之类的东西时,它可以工作,但这不是创建动态目录。 -
@DaveRandom,没有。它列出了值,我只是在这里更改了它们。我会修改它以更好地反映