$DataforWrite = array("num_posts"=>118, "TOTAL_USERS"=>1030, "TOTAL_IPS"=>900, "num_credits"=>15800); 
foreach($DataforWrite as $a=>$b)
{
   $fp1 = fopen("dataLog.txt","a+");
   fwrite($fp1,$a.":".$b);
   fclose($fp1);}

解决方案 »

  1.   


    程序代码:<?php
    $DataforWrite = array("num_posts"=>118, "TOTAL_USERS"=>1030, "TOTAL_IPS"=>900, "num_credits"=>15800); 
    $fp=fopen("datalog.txt","a");//楼上的循环打开不是很好
    flock($fp,LOCK_EX);//写入锁定
    fwrite($fp,date("d/H/i/s")."\n");//写入时间
    foreach($DataforWrite as $key=>$value)
    {
     fwrite($fp,$key.":".$value."\n");//循环写入数组
    }
    fclose($fp);
    ?>
      

  2.   

    还有一点:index.php中打开文件,在sub1和sub2中不断追加$DataforWrite数据到dataLog.txt中,也就是说sub1/sub2写入的
    时候可以直接写,不用每次都在sub1/sub2中频繁反复打开txt文件。是否需要设置$fp为全局变量?
    如何在index.php中设置?
      

  3.   


    不知道楼主是什么意思???sub1和sub2是什么东西???全局变量只对于当前执行的文件,其它正在执行的是不管的,楼主可能搞错了全局变量的范围了。
      

  4.   

    sub1.php和sub2.php是两外两个类,在index.php中引用。
      

  5.   


    同时由index.php调用的话,设置为全局可以的,在类的外部可以不用设置,直接用$fp。
      

  6.   

    只有在vb或vbscrit中才有sub(过程这个概念),楼主应该是做ASP的,sub其实就类似于函数,不明白为什么vb要弄个sub出来。另外,$fp=fopen("xxx.txt","a");这个代码放在当前页面第一次要写入文件之前就可以了。然后在不进行写入文件操作之后立刻fclose($fp);每访问一次index.php,程序就会执行:打开xxx.txt => 循环写入数据 => 关闭这一系列操作。你期待的可能是文件永远处于打开状态,每次访问程序都只是循环写入数据。就算你把$fp设置为全局变量,它的作用域也仅限于当前文件,而不能像ASP中的applaction那样跨页面。