[PHP-users 33463] Re: Undefined offsetエラー

Naoya Harasawa harasawa @ gust.jp
2008年 4月 11日 (金) 10:55:06 JST


エラー行数とか書いてないので何ともいえませんが
Undefined offsetの意味から配列の指定に関する警告ではと推測できます。
doループ前に$iの初期化とwhile条件が間違っているのではないでしょうか?

$i = 0;
do {
	$file =  $Line[$i];
	++$i;
	$title = $Line[$i];
	++$i;
	$info1 = $Line[$i];
	++$i;
	while ( !(stristr($Line[$i],"<font")) ) {
		$info1 .= $Line[$i];
		++$i;
	}
	
	echo $file;echo $title;echo $info1;echo "<br>";
} while ( $i <= count($Line) );
では?(処理中身があっているかはみてません)

NaoyaHarasawa

kaz さんは書きました:
> おはようございます、奥井です。
> 
> エラーログにPHP Notice:  Undefined offset:  460123(カウントアップ値)のメッセージが沢山出ますが原因がわからず困っていますのでなにかアドバイスを頂たいと思います。
> スクリプトはhtml文からの抜き出しです。
> $lines = file('http://localhost/~sus/2008kayou.html');
> $j = 0;
> for ($i = 0;$i < count($lines);$i++){
> 	if (stristr($lines[$i],"<font")) {
> 		$check_char = 0;
> 	} else {
> 		$check_char = 1;
> 	}
> 	
> 	switch ($check_char) {
> 		case 0;
> 			$Line[$j] = $lines[$i];
> 			++$j;
> 			++$i;
> 			while ( !(stristr($lines[$i],"<hr")) ) {
> 				$Line[$j] = $lines[$i];
> 				++$j;
> 				++$i;
> 			}
> 			++$j;
> 			break;
> 		case 1;
> 			break;
> 	}
> }
> do {
> 	$file =  $Line[$i];
> 	++$i;
> 	$title = $Line[$i];
> 	++$i;
> 	$info1 = $Line[$i];
> 	++$i;
> 	while ( !(stristr($Line[$i],"<font")) ) {
> 		$info1 .= $Line[$i];
> 		++$i;
> 	}
> 	
> 	echo $file;echo $title;echo $info1;echo "<br>";
> } while ( $i > count($Line) );
> 
> 抜き出したhtml文は$Lineに以下のようなものがいくつかはいります。
> <FONT size="4"><a href="2008/kayou-dorama/AM-nhk120080114-2130.mp3">20080114-2130.mp3</a><br></FONT>
> 「恋はやさし野辺の花よ」<br>
>                       【作】大橋 泰彦<br>
>                      【出演】山下 智子<br>
>                          安原 義人<br>
> これを$file $title $info1に入れるdo文でおかしくなって途中で表示されなくなります。
> エラーログをみると200MぐらいのサイズになっていてPHP Notice:  Undefined offset:  460123(カウントアップ値)が沢山でています。
> do文のwhileあたりで大量にメッセージがでています。
> どこが駄目なのかご教授お願いします。


PHP-users メーリングリストの案内