• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHPの syntax error について)

PHPのsyntax errorについて

このQ&Aのポイント
  • PHPのコードを書いて、添付のスクリーンショットのようなエラーが出てきます。
  • 問題のline 18にはunexpected T_STRINGというエラーメッセージが出ていますが、解決方法が分かりません。
  • 同じエラーメッセージが出続けるため、コメントアウトしてみましたが解決しませんでした。詳しい方、教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • 4017B
  • ベストアンサー率73% (1341/1821)
回答No.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プログラムは存在しないため、そこでエラーになって止まるのです。

papashiroSooke
質問者

お礼

早速にご回答を頂き、有難うございます。 ご忠告の通りに"\"を "\\" にしてみたらファイル名を渡すことが出来ました。 しかし今度は、「そんなファイルは存在しません」というメッセージが出てきました。 これはまた別の件として質問させていただきます。 もしよかったらそちらの方にもご回答いただけると有難いです。

関連するQ&A