ざっと見た限りではなんか変そうなんだが・・・・。詳しく見るのもアレなので、
とりあえず $ct = count($log_line); の行の前あたりに

$a=array(); foreach($log_line as $b) $a[]=urlencode($b); print_r($a);

を加えて$log_lineの中身がどうなっているかチェック。
他にも怪しそうな変数があったら同様にチェック。
変数の内容を確認するのはデバッグの基本。

あと×「教授」→○「教示」