2012-12-28 81 views
-2

可能重复:
Reference - What does this error mean in PHP?错误日志文件FEOF()与fgets()PHP

我有如下的PHP代码:

<?php 
$PMTA = $_GET['PMTA']; 
//Get current date 
$date = date('Y-m-d'); 
// Declare variables 
$chart = array(); 
$title = ""; 
$domain = ""; 
$total = array(); 
$fail = array(); 
$cate = array(); 
$orderChart = array(); 
$container =""; 
$dormain_str = array(); 
// End declare variable 

//Use switch for getting the text files     
    switch($PMTA){ 
     case 1: 

      if(file_exists('../pmta/stats_domain_emetteur_recepteur.unitead.info.'.$date.'.txt')) 
      { 
       $file = '../pmta/stats_domain_emetteur_recepteur.unitead.info.'.$date.'.txt'; 
      } 
      else 
      { 
       $file = 'file_exits/stats_domain_sender_blank.txt'; 
      } 
      break; 
     case 2: 

      if(file_exists('../pmta/stats_domain_emetteur_recepteur.frdcrp.com.'.$date.'.txt')) 
      { 
       $file = '../pmta/stats_domain_emetteur_recepteur.frdcrp.com.'.$date.'.txt'; 
      } 
      else 
      { 
       $file = 'file_exits/stats_domain_sender_blank.txt'; 
      } 
      break; 
     case 3: 

      if(file_exists('../pmta/stats_domain_emetteur_recepteur.affinitead.net.'.$date.'.txt')) 
      { 
       $file = '../pmta/stats_domain_emetteur_recepteur.affinitead.net.'.$date.'.txt'; 
      } 
      else 
      { 
       $file = 'file_exits/stats_domain_sender_blank.txt'; 
      } 
      break; 
     case 4: 

      if(file_exists('../pmta/stats_domain_emetteur_recepteur.switchcall.com.'.$date.'.txt')) 
      { 
       $file = '../pmta/stats_domain_emetteur_recepteur.switchcall.com.'.$date.'.txt'; 
      } 
      else 
      { 
       $file = 'file_exits/stats_domain_sender_blank.txt'; 
      } 
      break; 
     case 5: 

      if(file_exists('../pmta/stats_domain_emetteur_recepteur.unitead.eu.'.$date.'.txt')) 
      { 
       $file = '../pmta/stats_domain_emetteur_recepteur.unitead.eu.'.$date.'.txt'; 
      } 
      else 
      { 
       $file = 'file_exits/stats_domain_sender_blank.txt'; 
      } 
      break; 

    } 

       // Open the file and read data 
       $files = fopen($file,'r'); 
       // Start i = 0 
       $i = 0; 
       // Check for the end of file has been reached,if have any error or end of file it will return true, other will return false 
       while(!feof($files)){ 
        // It breaks the string in file that seperate by ; into array, so $data will become an array 
        $data = explode(";",fgets($files)); 
        // Determind wheather the data is not empty or not 
        if(!empty($data[6])){ 
         $domain = $data[6]; 
          if(!empty($_POST['txt_order_blue'])){          
           $orderChart[$domain][] =array("success" => (100 - $data[9]),"fail" =>(float)$data[9],"cate" => $data[5]);          
          } 
           // Else if click on button order by % failed   
          else{ 
           $orderChart[$domain][] =array("fail" =>(float)$data[9],"success" => (100 - $data[9]),"cate" => $data[5]); 
          }        
         $i++; 

        } 

       } 

?> 

当我在本地运行它工作正常,但是当我在服务器上运行它时,它显示消息

[Thu Dec 27 09:12:37 2012] [error] [client 103.23.136.12] PHP Warning: feof() expects parameter 1 to be resource, boolean given in /home/uniteadpro/www/kama/stats/unitead_chart/bar_chart_ratio_recepteur_emetteur.php on line 89 

而且

[Thu Dec 27 09:12:37 2012] [error] [client 103.23.136.12] PHP Warning: fgets() expects parameter 1 to be resource, boolean given in /home/uniteadpro/www/kama/stats/unitead_chart/bar_chart_ratio_recepteur_emetteur.php on line 90, referer: http://www.unitead.pro/kama/stats/unitead_chart/ 

在日志文件中。
我不知道如何解决这个问题。

+4

你*不*处理错误。检查'fopen($ file)'是否成功,然后将其作为文件句柄传递。 – DCoder

回答

0

文件“file_exits/stats_domain_sender_blank.txt”是否存在于与“bar_chart_ratio_recepteur_emetteur.php”相同的位置上。

我想你的两个文件必须位于“/ home/uniteadpro/www/kama/stats/unitead_chart /”位置。对于第二个错误,只需删除while循环。