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

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

新規登録して質問してみよう
ただいま回答率
87.20%
Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

解決済

syntax error, unexpected '$message' (T_VARIABLE) エラーの原因

Nitta
Nitta

総合スコア96

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

1回答

0評価

0クリップ

1775閲覧

投稿2019/12/12 02:12

お世話になってます。
今あるツール開発において、構文エラーが出現して困っています。
何が原因なのかがわからないため、お分かりの方おられましたら返信下さい。

エラー名:syntax error, unexpected 'urlmaker' (T_VARIABLE)

・コントローラー側

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; define("HTTP_TRY_TIMER", 30); define("HTTP_TRY_NUM", 10); class AWS_Data_GetController extends Controller { public function Dataget_Tool(Request $req){ //JPN限定 $country = 'JP'; $Seller_Id = str_replace("SELLER_ID:","",$req->Seller_Id); console.log($Seller_Id); $params=array(); $params['AWSAccessKeyId'] = 'ABCDEFGHIJ'; $params['SellerId'] = '123456789'; $params['SignatureMethod'] = 'HmacSHA256'; $params['SignatureVersion'] = '2'; $params['Version'] = '2011-10-01'; $params['Timestamp'] = gmdate('Y-m-d\TH:i:s\Z'); // Timeは毎回Checkされる【ISO8601,UTC(GMT)】 $params['Action'] = 'GetMatchingProductForId'; $params['MarketplaceId'] = 'A34567RTE'; $params['IdType'] = 'EAN'; $params['IdList.Id.1'] = '4580550620546'; $baseurl= 'https://mws.amazonservices.jp/'; $baseurl = $baseurl . 'Products/' . $params['Version']; $secret_access_key='cbdhjsudkiddssdfsddfds/HnTml'; //URLの作成 $url = makeUrl($params, $baseurl, $secret_access_key, 2); //HTMLアクセスを行う $amazon_xml = accessHttp( $url, 0 ); // 0:XML解析要 foreach($amazon_xml->GetMatchingProductForIdResult as $response){ //$getTitle = $response->Products->Product->AttributeSets->ns2_ItemAttributes->ns2_Title; $get_ASIN = $response->Products->Product->Identifiers->MarketplaceASIN->ASIN; } printf ("SUCCESS : MWS GetMatchingProduct completed! Title=%s\n", $getASIN ); echo "'".$getTitle."'"; exit; } // HTTPアクセスを行う処理(HTTP_TRY_NUM回のリトライを行う) function accessHttp( $url, $jobType ) { for ($i=1; $i <= HTTP_TRY_NUM; $i++) { $http_response_header = null; $response = @file_get_contents( $url ); // HTTPエラーの検出 $pos = strpos($http_response_header[0], '200'); if ($pos === false) { // エラー処理 if (strstr($http_response_header[0], '400 Bad Request')) { // ERROR printf ("ERROR : HTTP ACCESS 400!\n"); exit; } elseif (strstr($http_response_header[0], '403 Forbidden')) { // ERROR printf ("ERROR : HTTP ACCESS 403!\n"); exit; } elseif (strstr($http_response_header[0], '404 NotFound')) { printf ("ERROR : HTTP ACCESS 404!\n"); // 404はサーバ負荷により発生する可能性あり // exit; } if ( $i == HTTP_TRY_NUM ){ exit; } // HTTPがOK時 } else { // XML解析不要時 "$jobType = 1" if ( $jobType == 1 ) { return $response; } // MWSエラーのチェック $response = preg_replace("/ns2:/", "ns2_", $response); $amazon_xml = simplexml_load_string($response); if ( isset($amazon_xml->Error->Message) ) { // エラー処理 printf ("ERROR : HTTP ACCESS MWS i=%d!\n", $i ); // ERROR if ( $i == HTTP_TRY_NUM ){ exit; } } else { return $amazon_xml; } } //Sleep (HTTP_TRY_TIMER) Seconds sleep(HTTP_TRY_TIMER); } } //URLを作る処理 function makeUrl($params, $baseurl, $secret_access_key, $jobType) { // パラメータの順序を昇順に並び替えます ksort($params); \Debugbar::info($params); // URLの追加部分を作成します $option_string = ''; foreach ($params as $k => $v) { // URLの追加部分をURLエンコードして&でつなげる。 $option_string .= '&'.urlencode_rfc3986($k).'='.urlencode_rfc3986($v); } // 最初の"&"のみ削除 $option_string = substr($option_string, 1); // URL作成 $parsed_url = parse_url($baseurl); if ( $jobType == 2 ){ $string_to_sign = "POST\n{$parsed_url['host']}\n{$parsed_url['path']}\n{$option_string}"; }else{ $string_to_sign = "GET\n{$parsed_url['host']}\n{$parsed_url['path']}\n{$option_string}"; } echo $string_to_sign; // - HMAC-SHA256 を計算し、BASE64 エンコード $signature = base64_encode(hash_hmac('sha256', $string_to_sign, $secret_access_key, true)); // - リクエストの末尾に署名を追加 $url = $baseurl.'?'.$option_string.'&Signature='.urlencode_rfc3986($signature); // URLを返す return $url; } // RFC3986 形式で URL エンコードする関数 function urlencode_rfc3986($str){ $urlmaker = str_replace('%7E', '~', rawurlencode($str));  return $urlmaker;----->>ここでエラー } }

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

m.ts10806

2019/12/12 02:17

Laravel特有でもなんでもないPHPのよくある構文エラーですがそのあたりは認識されてますか?
m.ts10806

2019/12/12 02:23

あとタイトルと内容でエラー内容合致していません。どちらでしょうか
Y.H.

2019/12/12 02:24

タグに[PHP]を指定ください。
Nitta

2019/12/12 02:30

お世話になってます。根本的な問題ということでしょうか?
m.ts10806

2019/12/12 02:46

根本的というより初歩的な構文エラーということです。
Nitta

2019/12/12 02:56

基本からやり直せということでしょうか?
Y.H.

2019/12/12 03:13

解決したら解決済みにしておいてください
m.ts10806

2019/12/12 04:00

んー。これくらいで困り悩む段階だとフレームワークはかなり厳しいと思いますよ。 最低でもLaravel固有の問題かそうでないかくらいは切り分けられないと
Nitta

2019/12/12 04:12 編集

ではどうしろと言いたいの?やめた方が良いですよとでも言いたい感じですね?
m.ts10806

2019/12/12 05:28 編集

やめたければどうぞ。私はとめませんし、そもそもやめろと言ったつもりもありません。 「現状ではフレームワークはかなり厳しい。最低でもLaravel固有の問題かそうでないかくらいは切り分けられないと」で伝わると思ったのですが。
Nitta

2019/12/12 23:58 編集

おはようございます。いえそのつもりは全くない。
m.ts10806

2019/12/13 00:00

そのつもりとは?
m.ts10806

2019/12/13 00:01

なお、こちらは煽るような意図は全くなく、あくまできちんとフレームワークに進むには必要なところが欠けているという指摘に終始しているのみです。
m.ts10806

2019/12/13 00:09

特にLaravelは求められるPHPのスキルが他のフレームワークより高いので、今回の質問にあるようなことで質問しているようだとLaravel自体の学習が進まずストレスにしかなりません。 フレームワーク特有の問題か、言語本体の問題かを切り分けられるようになるくらいまでスキルを高めてから学習に入ったほうが良いですし、 そこまで高められてない人がLaravelに入って一切通用せず成長せず質問し続けている現状を見てきています。 あとは自身がどうなりたいかで決めたら良いです。
Nitta

2019/12/13 04:48

そのつもり⇒やめるつもりはないという意味です。 再度、基本に戻りphpの基礎からやるつもりです。 理解が半端なところは大分わかってきてるので。
m.ts10806

2019/12/13 05:01

資金に余裕がありそうならPHP技術者認定試験を受けてみるのもありです。(フレームワークの問題も1つ2つ出ますが)初級とれれば十分自信になるでしょう。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。