php 为什么这里的touch($log)创建不了文件?

<?php
//file:index.php 首页面
//所有用户直接访问到的这些页面必须先加载init.php
require('./include/init.php');
//读取配置文件信息
$conf = conf::getIns();
var_dump($conf);
echo $conf->host,'
';
echo $conf->user,'
';
//魔术方法动态追加选项
$conf->temp_dir='D/www/shop/include';
echo $conf->temp_dir;
log::write('记录');
class mysql{
public function query($sql){
log::write($sql);// 记录查询
}
}
$mysql=new mysql();
for($i=0;$i $mysql->query($sql);
usleep(10000);
}
echo '执行完毕';
?>

 <?php
//file:log.class.php 作用:记录信息到日志 大于1M备份
class log{
//写日志
public static function write($cont){
   $cont.="\r\n";
   $log = self::isBig();
   $fh=fopen($log,'ab');
   fwrite($fh,$cont);
   fclose($fh);
   }
//备份日志
public static function logCopy(){
     $log=ROOT.'data/log/curr.log';
     $bak=ROOT.'data/log/'.date('ymd').mt_rand(10000.99999).'.bak';
      return rename($log,$bak);
    }
//读取并判断日志大小
public static function isBig(){
    $log =ROOT.'data/log/curr.log';
    if(!file_exists($log)){
     touch($log);
     return $log;
    }
    //文件存在 判断大小
     $size=filesize($log);
     if($size<=1024*1024){
     return $log;
     }
     if(!self::logCopy()){
     return $log;//备份失败,返回路径,继续写入
     }else{   
      touch($log);//备份成功,原来的日志文件不存在了,重新创建日志文件,
      return $log;
     }
}    
}
?>

<?php
//框架初始化
//初始化当前的路径
//echo substr(str_replace('\','/',__FILE__),0,-8);
define('ROOT',str_replace ('\','/',dirname(dirname(__FILE__)).'/'));
define('debug',true);
require(ROOT.'include/db.class.php');
require(ROOT.'include/conf.class.php');
require(ROOT.'include/log.class.php');
//过滤参数
// 设置报错级别
if(defined('DEBUG')){
error_reporting(E_ALL);}
else{
error_reporting(0);}
?>


3个回答

看一下地址和权限对不对

chen_gong1992
MrCG 谢谢你的回答,问题已经解决了,犯了个低级错误。
3 年多之前 回复

谢谢你的回答,问题已经解决了,犯了个低级错误。

权限不对吧。有空可以去看下w3cstudy.com.cn上面的学习文章,挺不错的。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问