duanlisha2335 2013-07-23 22:06
浏览 47
已采纳

更简单的文件写入方法[关闭]

Is there a better way of doing this?:

$dataString2 = " $leder klarte orgkrim å fikk: ".$showcah." den ".$timed." ";
$dataString3 = " $hacker klarte orgkrim å fikk: ".$showcah." den ".$timed." ";
$dataString4 = " $driver klarte orgkrim å fikk: ".$showcah." den ".$timed." ";
$dataString5 = " $weaponexpert klarte orgkrim å fikk: ".$showcah." den ".$timed." ";
$dataStringinfo = "$leder, $hacker, $driver, $weaponexpert klarte å OC med å få ".$showcah." tid: ".$timed.""; 
$dataStringinfo .= "
";
$dataString2 .= "
";
$dataString3 .= "
";
$dataString4 .= "
";
$dataString5 .= "
";
$fWrite0 = fopen("/home/nordic/www/logger/orgkrim/completed/oversikt.txt","a");
$fWrite1 = fopen("/home/nordic/www/logger/orgkrim/oversikt.txt","a");
$fWrite2 = fopen("/home/nordic/www/logger/orgkrim/completed/$leder.txt","a");
$fWrite3 = fopen("/home/nordic/www/logger/orgkrim/completed/$hacker.txt","a");
$fWrite4 = fopen("/home/nordic/www/logger/orgkrim/completed/$driver.txt","a");
$fWrite5 = fopen("/home/nordic/www/logger/orgkrim/completed/$weaponexpert.txt","a");

$wrote2 = fwrite($fWrite2, $dataString2);
$wrote2 = fwrite($fWrite3, $dataString3);
$wrote3 = fwrite($fWrite4, $dataString4);
$wrote4 = fwrite($fWrite5, $dataString5);
$wrote5 = fwrite($fWrite1, $dataStringinfo);
$wrote0 = fwrite($fWrite0, $dataStringinfo);
fclose($fWrite0);
fclose($fWrite1);
fclose($fWrite2);
fclose($fWrite3);
fclose($fWrite4);
fclose($fWrite5);

In short, this sends the various "logs" different places. I wonder if there is any easier way to do this here, to save space.

  • 写回答

2条回答 默认 最新

  • dsbckxk165039 2013-07-23 22:11
    关注

    Comments above indicated using a logger class, but I think for this isolated example that would be overkill.

    Note that much of your code is doing the same thing for each different file: fopen, fwrite, fclose. This sequence of function calls would be an ideal candidate for turning into a function. Luckily for you, that function already exists: file_put_contents.

    $common = " klarte orgkrim å fikk: ".$showcah." den ".$timed." 
    ";
    
    $dataString2 = " $leder" . $common;
    $dataString3 = " $hacker" . $common;
    $dataString4 = " $driver" . $common;
    $dataString5 = " $weaponexpert" . $common;
    $dataStringinfo = "$leder, $hacker, $driver, $weaponexpert klarte å OC med å få ".$showcah." tid: ".$timed."
    "; 
    
    $logdir = "/home/nordic/www/logger/orgkrim/";
    
    file_put_contents($logdir."/completed/oversikt.txt", $dataStringinfo, FILE_APPEND);
    file_put_contents($logdir."/oversikt.txt", $dataStringinfo, FILE_APPEND);
    file_put_contents($logdir."/completed/$leder.txt", $dataString2, FILE_APPEND);
    file_put_contents($logdir."/completed/$hacker.txt", $dataString3, FILE_APPEND);
    file_put_contents($logdir."/completed/$driver.txt", $dataString4, FILE_APPEND);
    file_put_contents($logdir."/completed/$weaponexpert.txt", $dataString5, FILE_APPEND);
    

    Note that I removed many lines by simply changing:

    $foo = "bla".$bar." ";
    $foo .= "
    ";
    

    to

    $foo = "bla".$bar." 
    ";
    

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题