edit-icon download-icon

PHP SDK

最終更新日: Jul 11, 2019

準備

  1. Alibaba Cloud SDK をインストールして使用する前に、Alibaba Cloud アカウントを登録して AccessKey を生成したことを確認します。詳細は、AccessKey の作成をご参照ください。
  2. Image Search PHP SDK をダウンロードします。ダウンロードはこちらをクリックしてください。

フルコード例

  1. <?php
  2. chdir(dirname(__FILE__));
  3. require_once "./aliyun-php-sdk-core/Config.php";
  4. use ImageSearch\Request\V20190325\AddImageRequest;
  5. use ImageSearch\Request\V20190325\SearchImageRequest;
  6. use ImageSearch\Request\V20190325\DeleteImageRequest;
  7. DefaultProfile::addEndPoint("<region>", "<region>", "ImageSearch", "imagesearch.<region>.aliyuncs.com");
  8. $profile = DefaultProfile::getProfile("<region>", "<your-access-key-id>", "<your-access-key-secret>");
  9. $client = new DefaultAcsClient($profile);
  10. // 画像の追加
  11. $addRequest = new AddImageRequest();
  12. $addRequest->setInstanceName("demo");
  13. $addRequest->setProductId("test");
  14. $addRequest->setPicName("test");
  15. $content = file_get_contents("/home/admin/demo.jpg");
  16. $encodePicContent = base64_encode($content);
  17. $addRequest->setPicContent($encodePicContent);
  18. try {
  19. $addResponse = $client->getAcsResponse($addRequest);
  20. print_r($addResponse);
  21. } catch(ServerException $e) {
  22. print "Error: " . $e->getErrorCode() . " Message: " . $e->getMessage() . "\n";
  23. } catch(ClientException $e) {
  24. print "Error: " . $e->getErrorCode() . " Message: " . $e->getMessage() . "\n";
  25. }
  26. // 画像の検索
  27. $searchRequest = new SearchImageRequest();
  28. $searchRequest->setInstanceName("demo");
  29. $searchRequest->setType("SearchByName");
  30. $searchRequest->setProductId("test");
  31. $searchRequest->setPicName("test");
  32. // オプション,被写体検出を行うか,デフォルトはtrue。
  33. // 1.trueの場合,システム上被写体検出を行い,その被写体で検索します。被写体検出の結果はResponseの中に確認できます。
  34. // 2. falseの場合,被写体検出を行わず,画像全体で検索します。
  35. //$addRequest->setCrop("false");
  36. //$addRequest->setCrop("true");
  37. // オプション,被写体範囲の指定,フォーマットは x1,x2,y1,y2, 座標 x1,y1 左上の点,x2,y2 は右下の点です。
  38. // Regionを設定した場合,Cropパラメータを無視し,Regionを優先して検索します。
  39. // $addRequest->setRegion("100,300,100,300");
  40. try {
  41. $searchResponse = $client->getAcsResponse($searchRequest);
  42. print_r($searchResponse);
  43. } catch(ServerException $e) {
  44. print "Error: " . $e->getErrorCode() . " Message: " . $e->getMessage() . "\n";
  45. } catch(ClientException $e) {
  46. print "Error: " . $e->getErrorCode() . " Message: " . $e->getMessage() . "\n";
  47. }
  48. // 画像の削除
  49. $deleteRequest = new DeleteImageRequest();
  50. $deleteRequest->setInstanceName("demo");
  51. $deleteRequest->setProductId("test");
  52. try {
  53. $deleteResponse = $client->getAcsResponse($deleteRequest);
  54. print_r($deleteResponse);
  55. } catch(ServerException $e) {
  56. print "Error: " . $e->getErrorCode() . " Message: " . $e->getMessage() . "\n";
  57. } catch(ClientException $e) {
  58. print "Error: " . $e->getErrorCode() . " Message: " . $e->getMessage() . "\n";
  59. }