🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Laravel 5

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

Q&A

解決済

1回答

3648閲覧

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

Nitta

総合スコア96

Laravel 5

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

0グッド

0クリップ

投稿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;----->>ここでエラー } }

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

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

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

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

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

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つ出ますが)初級とれれば十分自信になるでしょう。
guest

回答1

0

ベストアンサー

エラーの出ている行の全角空白( )を半角空白( )に置き換えましょう。

投稿2019/12/12 02:22

Y.H.

総合スコア7918

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

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

Nitta

2019/12/12 02:57

返信ありがとうごいます。 無事、修正できデータ取得できました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問