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

M.H hashi_311 @ kve.biglobe.ne.jp
2008年 4月 11日 (金) 15:18:01 JST


 "M.H"です。

配列が存在してないんじゃないでしょうか。
というのも $Line の配列数を使ってwhile文で回してるようですが 
$Lineの添え字って必ずしも順番に設定されてませんよね?
飛び飛びになってません?

例えばこんな状態になってません?
(途中の)
$Line[0] = "data0"
$Line[1] = "data1"
$Line[2]存在してない
$Line[3]存在してない
$Line[4] = "data4"
$Line[5] = "data5"


そんな状態で
$file =  $Line[$i]
としているのでNoticeが出てるんじゃないかと思います。

(あくまで推測ですが)


----------------------------------------------------------

>おはようございます、奥井です。
>
>エラーログに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 mailing list  PHP-users @ php.gr.jp
>http://ml.php.gr.jp/mailman/listinfo/php-users
>PHP初心者のためのページ - 質問する前にはこちらをお読みください
>http://oldwww.php.gr.jp/php/novice.php3


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