使用PHP中的函数获取文本文件

时间:2012-12-14 04:57:22

标签: php file function

假设我有以下PHP函数:

function.php

<?php
function getDataInFile($PMTA_FILE){
    $PMTA_DATE = date("Y-m-d");
    $lineFromText = explode("\n", $PMTA_FILE);
    $number_bar_charts = 13;
    $row = 0;
    $cate = "";
    $total ="";
    $fail = "";
    $mailSuc = "";
    $title = "";
       foreach($lineFromText as $line){
            if($row < $number_bar_charts){
              $words = explode(";",$line);
              $dateTime .= ','.$words[0];
                if($title == ""){
                   $title = $words[0];
                }
                $cate .= ','."'$words[5]'";
                $total .= ','.$words[6];
                $fail .= ','.$words[7];
                $mailSuc .= ','.((int)$words[6] - (int)$words[7]);                          
            $row++;
      }   
     }

}


?>

以下是我在getFile.php中调用函数的代码。

<?php 
include("include/function.php");
$PMTA_DATE = date("Y-m-d");
getDataInFile("../stats_domain_recepteur.affinitead.net.".$PMTA_DATE.".txt");

?>

实际上,它无法从文件中读取数据,我收到错误消息Undefined variable: dateTime in C:\wamp\www\chat\include\function.php on line 15Notice: Undefined offset: 5 in C:\wamp\www\chat\include\function.php on line 19 ....

我不知道如何解决这个问题,任何人都请帮助我,谢谢。

3 个答案:

答案 0 :(得分:0)

这些只是通知。它们不是可怕的错误会破坏你的代码,但是一些代码审查者会让你修复它们。 PHP只是给你一个礼貌的轻推,但无论如何都会工作。致命错误是阻碍PHP发展的重大问题。

以下是PHP发现的问题......

  1. 您在每次迭代时将数据附加到字符串$ dateTime。在第一次通过变量时尚不存在。 PHP并不关心,但会发出警告。要摆脱这个问题,请在使用之前定义$ dateTime。

    $dateTime = null;

  2. 第二个问题是数组越界异常。当数组索引不存在时,你正试图用$ words [5]做一些事情。通常,在尝试使用它们之前,应检查数组索引,变量和其他有趣的东西是否存在。

    $cate .= sprintf(",'%s'", isset($word[5]) ? $word[5] : '');

  3. 如果您不希望在错误日志中看到通知和警告,请参阅PHP Error Handling以了解如何设置要在日志中查看的错误级别。

    您还应该阅读有关file_get_contents函数的所有内容,以便首先实际获取该文件!

答案 1 :(得分:0)

添加$ dateTime ='';在foreach之前($ lineFromText为$ line){

这样可以正常使用。

答案 2 :(得分:0)

错误消息是100%合法的:您正在尝试使用之前尚未初始化的变量。将此代码放在循环上方,您将摆脱此错误:

$dateTime = '';

关于第二个错误 - 它告诉你数组中没有第6个元素,所以你最好用一个支票替换那个代码:

$cate .= sprintf(",'%s'", isset($word[5]) ? $word[5] : '');

将此检查外推到其他索引访问。