2016-07-28 33 views
0

在我的控制器上,我试图找到以指定词开头的多行。在Codeingiter中显示来自文件的错误消息

$file = file(FCPATH . 'application/logs/log-' . date('Y-m-d') . '.php'); 
$data['debug_messages'] = $this->display_lines($file, 'DEBUG'); 
$data['informational_messages'] = $this->display_lines($file, 'INFO'); 

和函数display_lines

function display_lines($file, $str) { 
    $lines = $file; 
    foreach ($lines as $lineNumber => $line) { 
     if (strpos($line, $str) !== false) { 
      return $line; 
     } 
    } 
} 

当我观看出来把它仅显示了每个的一行,并为在图像显示不显示多个信息和调试行

它应该显示更多消息,但由于某种原因,每个消息只显示一行。

问题如果有多个行与信息启动,调试怎样才能得到它返回的多行对每个信息和调试?

enter image description here

日志文件

INFO - 2016-07-28 21:41:43 --> Config Class Initialized 
INFO - 2016-07-28 21:41:43 --> Hooks Class Initialized 
DEBUG - 2016-07-28 21:41:43 --> UTF-8 Support Enabled 
INFO - 2016-07-28 21:41:43 --> Utf8 Class Initialized 
INFO - 2016-07-28 21:41:43 --> URI Class Initialized 
INFO - 2016-07-28 21:41:43 --> Router Class Initialized 
INFO - 2016-07-28 21:41:44 --> Output Class Initialized 
INFO - 2016-07-28 21:41:44 --> Security Class Initialized 
DEBUG - 2016-07-28 21:41:44 --> Global POST, GET and COOKIE data sanitized 
INFO - 2016-07-28 21:41:44 --> Input Class Initialized 
INFO - 2016-07-28 21:41:44 --> Language Class Initialized 
INFO - 2016-07-28 21:41:44 --> Loader Class Initialized 
INFO - 2016-07-28 21:41:44 --> Helper loaded: form_helper 
INFO - 2016-07-28 21:41:44 --> Helper loaded: url_helper 
INFO - 2016-07-28 21:41:44 --> Database Driver Class Initialized 
DEBUG - 2016-07-28 21:41:44 --> Encryption: Auto-configured driver 'openssl'. 

查看

<div class="container"> 

    <div class="row"> 

     <div class="col-lg-12"> 

      <div class="page-header"> 
       <h4>Debug Messages</h4> 
      </div> 

      <textarea wrap="off" rows="15" readonly class="form-control"><?php echo $debug_messages; ?></textarea> 

     </div> 

    </div> 

    <div class="row"> 

     <div class="col-lg-12"> 

      <div class="page-header"> 
       <h4>Informational Messages</h4> 
      </div> 

      <textarea wrap="off" rows="15" readonly class="form-control"><?php echo $informational_messages; ?></textarea> 

     </div> 

    </div> 

</div> 

回答

1

我可能误解了这个问题。你想要的所有行,但现在你只返回第一场比赛,你为什么不编辑功能,像这样:

function display_lines($file, $str) { 
    $lines = array(); 
    foreach ($file as $lineNumber => $line) { 
     if (strpos($line, $str) !== false) { 
      $lines[] = $line; 
     } 
    } 

    return $lines; 
} 
+0

这是在哪一行/函数返回错误阵列字符串转换 – user4419336

+0

? – Buksy

+0

在我的视图里<?php echo $ informational_messages; ?>'和'<?php echo $ debug_messages; ?>我添加了我的视图和日志文件来提问。 – user4419336