- ベストアンサー
文法エラーが解決出来ません・・
phpでパースエラーが出るのですが、ドコが間違っているのかが解りません。 ============エラー文========================================= Parse error: syntax error, unexpected T_CHARACTER, expecting T_STRING or T_VARIABLE or T_NUM_STRING on line 296 ============================================================= ============エラーのソース(左の数字が行番号)================= 295|$str = " 296|//<form method=\"post\" action=\"$SERVER[\"PHP_SELF\"]\" enctype=\"multipart/form-data\" > ・ ・ 472|</html>"; 473|$str = mb_convert_encoding($str, "SJIS", "EUC-JP"); 474|echo $str; ============================================================= 295行目の$strに296行目から472行目までのHTML記述を代入して最後の行で出力しようとしているものです。 ちなみに、296行目のエスケープ(//)は、エスケープしてもしなくても296行目にエラーが出ます。 どなたか心当たりありましたらご意見宜しくお願いします!
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
#2です。 文字列を切りたくなければ、 295|$str = " 296|<form method=\"post\" action=\"{$SERVER['PHP_SELF']}\" enctype=\"multipart/form-data\" > ・ ・ 472|</html>"; の方が良。 変数名を「{}」で括って、「"」を「'」に変更。
その他の回答 (3)
- arexis
- ベストアンサー率66% (66/99)
295 ~ 472まで処理も無くHTML記述なのですか? なるべくそのままで考えると $str = <<<STREND <form method="post" action="{$_SERVER["PHP_SELF"]}" enctype="multipart/form-data" > ・ ・ この間普通のHTML表記 配列は{$変数['キー']} 変数も{$変数}の方がミスが少ないでしょう ・ ・ STREND; で済ませた方が楽だとますよ。 エスケープ文字も不要だし。
295|$str = " 296|<form method=\"post\" action=\"".$SERVER["PHP_SELF"]."\" enctype=\"multipart/form-data\" > ・ ・ 472|</html>"; に296行目を変更する。
- calltella
- ベストアンサー率49% (317/635)
295|$str = " 296|//<form method=\"post\" action=\"$SERVER[\"PHP_SELF\"]\" enctype=\"multipart/form-data\" > ↓ 295|$str = ""; 296|//<form method=\"post\" action=\"$SERVER[\"PHP_SELF\"]\" enctype=\"multipart/form-data\" > もしくは 295|//$str = " 296|//<form method=\"post\" action=\"$SERVER[\"PHP_SELF\"]\" enctype=\"multipart/form-data\" >
お礼
どうやら皆さんのご教示の通り、変数の展開ミスが原因だったようです。 arexisさんの、ヒアドキュメントを使う方法もすごく手間が省けるので大変参考になりました! ご回答下さった皆様、どうもありがとうございました☆