我需要编写文本文件,我尝试使用此代码
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文件,找不到它。问题显然在于我如何描述我的目录结构。我该如何解决?我之前不想创建目录结构,我需要它来根据需要创建文件夹。
答案 0 :(得分:1)
检查目标目录是否存在,如果没有则创建。
if(! is_dir($logsDir) ) { mkdir($logsDir, 0777, true); }
如果要描述路径,可以使用DIRECTORY_SEPARATOR
。