public function writeLog($data,$type)
{
var_dump($data);
// 获取项目根目录路径
$rootPath = app()->getRootPath();
if ($type == 1){
// 指定文件名和要写入的内容
$fileName = substr($data,5,7).'.txt';
echo $fileName.PHP_EOL;
// 拼接文件路径
$filePath = $rootPath . "/log/mod/" . $fileName;
// 判断文件是否存在
if (file_exists($filePath)) {
if ($handle = fopen($filePath, 'a+')) {
// 使用文件锁以确保同一时间只有一个进程写入
flock($handle, LOCK_EX);
// 移动文件指针到文件末尾
fseek($handle, 0, SEEK_END);
// 获取最后一行内容
$lastLine = '';
if ($handle && ftell($handle) > 0) {
while (($char = fgetc($handle)) !== false && $char !== "\n"){
$lastLine .= $char;
}
// 添加换行符
if ($lastLine !== '') {
$lastLine .= "\n";
}
}
// 追加新内容
fwrite($handle, $lastLine ."\n". $data);
// 释放文件锁
flock($handle, LOCK_UN);
// 关闭文件句柄
fclose($handle);
echo "内容已成功追加到文件末尾。";
} else {
echo "无法打开文件进行写入。";
}
} else {
if ($handle = fopen($filePath, 'w')) {
fwrite($handle, $data);
fclose($handle);
echo "文件已成功创建,并写入内容。";
} else {
echo "无法创建文件或写入内容。";
}
}
}elseif ($type == 2){
// 指定文件名和要写入的内容
$fileName = substr($data,17,5).'.txt';
echo $fileName.PHP_EOL;
// 拼接文件路径
$filePath = $rootPath . "/log/user/" . $fileName;
// 判断文件是否存在
if (file_exists($filePath)) {
if ($handle = fopen($filePath, 'a+')) {
// 使用文件锁以确保同一时间只有一个进程写入
flock($handle, LOCK_EX);
// 移动文件指针到文件末尾
fseek($handle, 0, SEEK_END);
// 获取最后一行内容
$lastLine = '';
if ($handle && ftell($handle) > 0) {
while (($char = fgetc($handle)) !== false && $char !== "\n"){
$lastLine .= $char;
}
// 添加换行符
if ($lastLine !== '') {
$lastLine .= "\n";
}
}
// 追加新内容
fwrite($handle, $lastLine ."\n". $data);
// 释放文件锁
flock($handle, LOCK_UN);
// 关闭文件句柄
fclose($handle);
echo "内容已成功追加到文件末尾。";
} else {
echo "无法打开文件进行写入。";
}
} else {
if ($handle = fopen($filePath, 'w')) {
fwrite($handle, $data);
fclose($handle);
echo "文件已成功创建,并写入内容。";
} else {
echo "无法创建文件或写入内容。";
}
}
}
}
在Thinkphp6.0中在根目录下创建文件,并写入内容,并且不读出原内容,直接在最后一行写上(记录日志文件)
最新推荐文章于 2024-07-03 23:19:22 发布