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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Curl(プログラミング言語)

Curl(プログラミング言語)は、Webコンテンツ向けのプログラミング言語。HTMLのようなテキスト記述やレイアウトデザイン、JavaScript のようなオブジェクト指向プログラム言語、Java のような重量機能など複数の言語の特徴を一つのフレームワークに統合しています。

PHP

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

4262閲覧

Curlを入れたPHPコードの立て方(api利用)

Tweet_from_JG

総合スコア14

Curl(プログラミング言語)

Curl(プログラミング言語)は、Webコンテンツ向けのプログラミング言語。HTMLのようなテキスト記述やレイアウトデザイン、JavaScript のようなオブジェクト指向プログラム言語、Java のような重量機能など複数の言語の特徴を一つのフレームワークに統合しています。

PHP

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2016/01/23 00:48

編集2016/01/23 00:50

https://www.metamind.io/
のサイトのapiを利用したページを作成しようとしています。
出しているapikeyなどは出して良いものを出しています。
回答していただける方はお試しくださいませ。
curlコマンドでは
以下のような流れを
curl
-H "Authorization: L7937FZsaYZnlmpIE2sDBWzzzmsOf8rIC6O4U1einfQeIsqMHJ'
-d '{"classifier_id":40632,"image_url":"your image URL"}'
"https://www.metamind.io/vision/classify"

PHPで以下のように書こうとしています。しかしどうしてもうまくいきません。どなたかご教示くださいますと助かります。
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST,true);

curl_setopt($ch, CURLOPT_VERBOSE, true); //debugging

curl_setopt($ch, CURLOPT_HTTPHEADER,array('Authorization: Basic L7937FZsaYZnlmpIE2sDBWzzzmsOf8rIC6O4U1einfQeIsqMHJ'));

curl_setopt($ch, CURLOPT_URL, "https://www.metamind.io/vision/classify");
curl_setopt($ch, CURLOPT_POSTFIELDS, array($classifer,$uploadString));

//return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);

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

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

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

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

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

guest

回答2

0

ベストアンサー

しかしどうしてもうまくいきません。

どううまくいかないのかを書いてもらわんと。$outputを出力すれば、解決できた内容かと。

lang

1<?php 2// エラー出力設定 3ini_set('display_errors', 1); 4ini_set('error_reporting', E_ALL); 5 6$ch = curl_init(); 7curl_setopt($ch, CURLOPT_URL, 'https://www.metamind.io/vision/classify'); 8curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); 9curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 10 11curl_setopt($ch, CURLOPT_HTTPHEADER, [ 12 "Authorization: Basic L7937FZsaYZnlmpIE2sDBWzzzmsOf8rIC6O4U1einfQeIsqMHJ", 13 "Content-Type: application/json", 14]); 15 16$jsonArray = [ 17 "classifier_id" => 40632, 18 "image_url" => "https://www.metamind.io/static/images/classification-demo-examples/macarons.jpg" 19]; 20$entityBody = json_encode($jsonArray); 21 22curl_setopt($ch, CURLOPT_POST, 1); 23curl_setopt($ch, CURLOPT_POSTFIELDS, $entityBody); 24 25$output = curl_exec($ch); 26 27if(!$output) { 28 29 die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch)); 30 31} else { 32 33 echo "Response Status Code: " . curl_getinfo($ch, CURLINFO_HTTP_CODE); 34 echo "\nResponse Body: " . $output; 35 36} 37 38curl_close($ch); 39 40?>

以下のようなレスポンスが戻されるので、あとはよしなに。

HTTP/1.1 200 OK Access-Control-Allow-Headers: AUTHORIZATION Access-Control-Allow-Methods: POST, OPTIONS Access-Control-Allow-Origin: * Access-Control-Max-Age: 21600 Content-Type: application/json Date: Sat, 23 Jan 2016 03:09:55 GMT Server: gunicorn/19.1.1 Set-Cookie: session=eyJfaWQiOnsiIGIiOiJaRFF6TkRZM056YzBZMkpqWmpBeE5qY3paalJqTkRCaVptRTNORFl4TUdVPSJ9fQ.CYSAgw.l3jBcpSkNV2p8rfN68rltZ4X9fY; HttpOnly; Path=/ X-Frame-Options: SAMEORIGIN Content-Length: 293 Connection: Close { "file_id": "static/images/classification-demo-examples/macarons.jpg", "predictions": [ { "class_id": 0, "class_name": "sakura", "prob": 0.9965620927572251 }, { "class_id": 1, "class_name": "kidai", "prob": 0.0034379072427748766 } ] }

投稿2016/01/23 03:43

izkn

総合スコア1698

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

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

Tweet_from_JG

2016/01/23 15:55

迅速な回答をしていただき、大変に助かりました! 親切でわかりやすい回答に感謝いたします!
guest

0

curlコマンドの方が正しいとすると、CURLOPT_POSTFIELDSで設定する値は-dオプションで渡している文字列と同じ形式でなければならないはずです。

PHP

1curl_setopt($ch, CURLOPT_POSTFIELDS, '{"classifier_id":40632,"image_url":"your image URL"}');

$classifer,$uploadStringの中身はわかりませんが、このような文字列を作って渡せばいいと思います。なんとなくjsonぽいのでjson_encodeが使えるかも?

CURLOPT_POSTFIELDSに配列を渡すとmultipart/formdata形式にされてしまうのでこの場合には適さないと思います。

投稿2016/01/23 02:43

crhg

総合スコア1175

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

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

Tweet_from_JG

2016/01/23 15:56

迅速な回答をしていただき、ありがとうございます! この様な記述もあるのだと大変に勉強になりました。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問