質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

1995閲覧

Parse error : syntax error, unexpected '{' in

rms398

総合スコア50

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2017/05/18 12:41

動画や画像をアップロードする機能なんですが
私が見る限りエラーが起こっているような所が見当たりません

###発生している問題・エラーメッセージ

Parse error</b>: syntax error, unexpected '{' in (パスは省略) on line 47

###該当している言語

php

1<?php 2 require_once(dirname(__FILE__)."/DBManager.php"); 3 require_once(dirname(__FILE__)."/photos_tagsTblDT.php"); 4 var_dump($_FILES); 5 var_dump($_POST); 6 $newFileName; 7 $tag = $_POST['tag']; 8 //POSTでファイルがアップロードされているか、tmpにアップロードされた一時情報があるか確認 9 if(!empty($_FILES['file']) && is_uploaded_file($_FILES['file']['tmp_name'])){ 10 //リネームネーム 年月日時分秒 11 $newName = date('YmdHis'); 12 //ランダムな数字を作成し追加 13 $newName .= mt_rand(1000,9999); 14 //newFileNameに代入 15 $newFileName = $newName; 16 //拡張子取得 17 $extension = pathinfo($_FILES['file']['name'],PATHINFO_EXTENSION); 18 //リネームネームに拡張子追加 19 $newName .= '.' . $extension; 20 //MIMEタイプの最初から5文字取得 imageとvideoとその他を分けるため 21 $type = substr($_FILES['file']['type'],0,5); 22 if(strlen($type) === 0)$type=" "; 23 //ディレクトリ情報を構成するための変数 24 $dir = './'; 25 switch($type){ 26 //画像の場合 27 case 'image': 28 //ディレクトリ情報にフォルダ,ファイル名,拡張子を追加 29 $dir .= 'img/' . $newName; 30 break; 31 //動画の場合 32 case 'video': 33 //ディレクトリ情報にフォルダ,ファイル名,拡張子を追加 34 $dir .= 'video/' . $newName; 35 break; 36 //画像でも動画でもない場合 37 default: 38 //ディレクトリ情報にフォルダ,ファイル名,拡張子を追加 39 $dir .= 'other/' . $newName; 40 break; 41 } 42 //tmp(一時保存データ保管場所)からファイルを指定ディレクトリに移動する 43 echo move_uploaded_file($_FILES['file']['tmp_name'],$dir); 44 //データベースを呼び出す 45 $DBManager = new DBManager(); 46 //どのテーブルに挿入するか分ける 47 switch($type){ 48 //画像の場合 49 case 'image': 50 //データベースにphoto_idとtag_idを登録 51 $DBManager->photo_tag_insert($newFileName,$tag); 52 break; 53 //動画の場合 54 case 'movie': 55 //データベースにmovie_idとtag_idを登録 56 $DBManager->movie_tag_insert($newFileName,$tag); 57 break; 58 //画像でも動画でもない場合 59 default: 60 break; 61 } 62 63 } 64?>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

Parse error</b>: syntax error, unexpected '{' in (パスは省略) on line 47

line 47と書かれているので、どうやら47行目に問題がありそうですね。
また、unexpected '{' とあることから{と関係がありそうです。
syntax errorは日本語で構文エラーです。一度検索してみる価値があるかもしれません。
これ以上のことは私にはわかりません。

投稿2017/05/18 12:45

編集2017/05/18 12:48
honami

総合スコア308

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rms398

2017/05/18 13:03

ありがとうございます。 同じswitch文がありますので そっちに移したら直りました。
honami

2017/05/18 13:06 編集

問題はswitch文ではありません。 9行目のif文が"}"で閉じられていないためです。 そのif文を閉じるためには47行目に"}"が必要です。
honami

2017/05/18 13:08

いや、9行目if文は閉じられてますね。 上は私の勘違いです。無視してください。
toutou

2017/05/18 13:08

そのifはswitch文を二つ含んだifだと思ったんですが違います?
honami

2017/05/18 13:11

それであっています。申し訳ありません。 ひとつ気になるのは回答一覧(Q&Aプラットフォーム上)でこのページのタイトルを見た際に"{"が文字化けしていることです。 問題はそこにあるかもしれません。
guest

0

見た感じエラーはありませんね。実はrequire_onceのほうのエラーだったりしませんか?

投稿2017/05/18 13:06

toutou

総合スコア2050

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問