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

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

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

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

Q&A

解決済

2回答

3614閲覧

PHP:curlオプションの指定方法

snowtail

総合スコア13

PHP

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

0グッド

0クリップ

投稿2019/05/09 05:09

Watson Visual Recognitionを試しています。

下記のcurlコマンドを実行することで、結果をとることができました。

curl -X POST -u "apikey:{XXXここにAPIを設定XXX}" --form "images_file=@{XXXここにファイルパスファイル名を指定XXX}" --form "classifier_ids={XXXここにモデルを指定XXX}" "https://gateway.watsonplatform.net/visual-recognition/api/v3/classify?version=2018-03-19"

これをPHPで実装したいと思っておりますが、PHP初学者・CURLも初めてなので、記述する方法がわからず困っております。

いろいろ調べると、下記のように記述すればいけるのかなとは思うのですが、$paramsには具体的にどのように記述すればよいのでしょうか?
(-uオプションや--formオプションはどのように指定するのだろうかわからず)
基本的なことで申し訳ございませんが、何卒よろしくお願い致します。

PHP

1<?PHP 2 3$base_url = 'https://gateway.watsonplatform.net/visual-recognition/api/v3/classify?version=2018-03-19'; 4 5$params = [ 6 ・・・, 7 ・・・, 8]; 9 10$curl = curl_init($base_url); 11 12curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST'); 13curl_setopt($curl, CURLOPT_POSTFIELDS, $params); 14curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); 15curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 16 17$response = curl_exec($curl); 18 19var_dump($response); 20 21curl_close($curl); 22 23?>

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

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

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

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

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

guest

回答2

0

ベストアンサー

PHPマニュアルにあるサンプルコード(例2 )が参考になるかもしれません。

要は「実行したいAPIに渡すパラメータ」なので、「Watson Visual Recognition」(私は利用したことがないのでわかりません)が求めるパラメータを仕様書から拾ってきてkey=>value形式の配列で適切に指定すると良いと思います。

投稿2019/05/09 05:17

m.ts10806

総合スコア80765

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

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

snowtail

2019/05/20 01:42 編集

さっそくのご回答ありがとうございます。 教えていただいたサンプルコードを見ながら、指定したところ、さきに進むことができました。 ありがとうございました。
m.ts10806

2019/05/09 09:12

解決されたようでなによりです。 機能的な確認はPHPマニュアルですると良いです。ネット上の紹介記事はパラメータの詳細説明が省かれた動かせることのみに焦点をあてたコードが多いので、自身のやりたいことにあてはめようとした場合、機能確認は必須になってきます。 あと、完成コードは大変喜ばしいことなのですが、あいにくコメントではマークダウン使えませんので「最終型」として質問に追記するか回答に残しておいた方があとから見る人に伝わりやすくなります。
snowtail

2019/05/20 01:41

すみません、コメントに気がつきませんでした。アドバイスありがとうございます。 質問に追記する形でコードを残しておきます。 (質問の内容とは違うのですが、先のコメントに記載したコードでは、アップロードファイルを認識できなかったので、そこも修正するようにします)
m.ts10806

2019/05/20 01:41

はい、よろしくお願いします。
guest

0

下記のコードにより、先に進むことができました。
アドバイスありがとうございました。

<?PHP $base_url = 'https://gateway.watsonplatform.net/visual-recognition/api/v3/classify?version=2018-03-19'; $key = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; $ch = curl_init(); $cfile = curl_file_create('xxxxxxxxxxxxxxxxxxx.jpg','image/jpeg','xxxxxx'); $data = array( 'images_file' => $cfile, 'classifier_ids' => 'xxxxxxxxxxxxxxxxxxxxx' ); curl_setopt($ch, CURLOPT_USERPWD, 'apikey:' . $key); curl_setopt($ch, CURLOPT_URL, $base_url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); $response = curl_exec($ch); var_dump($response);

投稿2019/05/20 01:45

snowtail

総合スコア13

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問