解析エラー: 構文エラー、script.php の xx 行目で予期しない $end
しばらくデバッグした後、エラーの原因となった行はファイルの途中の行であることがわかりました
//$str .= "? >n";
思い出した PHPインタプリタで許可されている終了マークのある行は一行でコメントすることもできます、つまり //$str .= "?>n"; はコメントとして解釈されます終了マークの前、コメントの内容は //$str .= "、?> の後の n"; は PHP ブロックの外側の内容として解釈され、HTML として出力されます。その結果、 $str .= "?>n"; 行に // をコメントとして追加すると、 ?> の終了タグが追加され、元の実際の終了タグが予期せぬものになります。
解決策は、この行を削除するだけです。
PHP 開始タグと終了タグがある行には何も書かないのが良い習慣です。
以上、構文エラー PHP の構文エラー、予期せぬ $end エラーの原因と解決策を、構文エラーの内容も含めて紹介しましたので、PHP チュートリアルに興味のある友人の参考になれば幸いです。