- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHPの syntax error について)
PHPのsyntax errorについて
このQ&Aのポイント
- PHPのコードを書いて、添付のスクリーンショットのようなエラーが出てきます。
- 問題のline 18にはunexpected T_STRINGというエラーメッセージが出ていますが、解決方法が分かりません。
- 同じエラーメッセージが出続けるため、コメントアウトしてみましたが解決しませんでした。詳しい方、教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
4行目の $FileName="C:\xampp\htdocs\".$FileName; の \ を全て $FileName = "C:\\xampp\\htdocs\\".$FileName; ~という風に修正すれば通る様になると思います。 P.S. \ (日本語の¥マーク) はPHPコード内では出現場所の如何に関わらず常にエスケープ文字として機能するため、うっかり癖でローカル内ファイルへのURL(Windows風PATH)を記述してしまうと。ディレクトリ階層の区切りを示す「\ (¥)」がエスケープ文字と判断され、例文の $FileName へ代入された文字列は実際には C:xampphtdocs".$FileName;~(これ以降の改行も含む全ての記述が1つの文字列と判断されている)~という風になるため。 エラー表示で9行目と出るのは、4行目で発生したエスケープ処理の間違いにより、$FileName="" の終末を意味する " が「PHPプログラムとして正しい意味で次に最初に登場する部分」が9行目の echo "~の部分になるため。そこまでを1つの文字列として処理してしまうからです。 このため echo "~以降の部分から改めてPHPプログラムとしてサーバ側が解釈しようとしますが… <form id='next' method... ~なんてPHPプログラムは存在しないため、そこでエラーになって止まるのです。
お礼
早速にご回答を頂き、有難うございます。 ご忠告の通りに"\"を "\\" にしてみたらファイル名を渡すことが出来ました。 しかし今度は、「そんなファイルは存在しません」というメッセージが出てきました。 これはまた別の件として質問させていただきます。 もしよかったらそちらの方にもご回答いただけると有難いです。