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