2016-12-14 76 views
0

我想執行以下代碼未定義抵消:133

$datafile = fopen("Data.txt", "r") or die("Unable to open file!"); 

$data = array(); 
$singleentry = array(); 
fgets($datafile); 
while(!feof($datafile)){ 
    $line=fgets($datafile); 
    array_push($data,$line); 
} 
// the form submission data is present in $data without formating 
print_r($data); 
echo '<br><br><br>'; 

for ($i = 0; $data[$i] != "start"; $i++){ 
    array_push($singleentry,$data[$i]); 
} 

,但我得到以下錯誤

未定義抵消:133 以下循環

for ($i = 0; $data[$i] != "start"; $i++){ 
    array_push($singleentry,$data[$i]); 
} 

請幫我解決這個問題

+0

如果沒有「開始」,在$數據就會發生這種情況,可能會有空格與比較搞亂? – fafl

+0

請爲您的問題使用富有表現力的標題 – JimHawkins

回答

0

您可以檢查的讀取線數:

$linecounter = 0; 
while(!feof($datafile)) { 
    $line = fgets($datafile); 
    array_push($data,$line); 
    // We count end-of-lines 
    $linecounter = $linecounter + substr_count($line, PHP_EOL); 
} 
... 
for ($i = 0; $i < $linecounter; $i++){ 
    if ($data[$i] == "start" OR strpos($data[$i], "start") !== FALSE) { 
     break; 
    } 
    array_push($singleentry,$data[$i]); 
}