本文介紹Image Search服務PHP SDK的使用方法及樣本。

準備工作

  • 在安裝和使用阿里雲SDK前,確保您已經註冊阿里雲帳號並產生存取金鑰(AccessKey)。詳情請參見t1938336.html#task968
  • 單擊PHP SDK安裝Image SearchPHP SDK,PHP版本要求大於等於5.3。

建立Client

建立Client程式碼範例如下。
chdir(dirname(__FILE__));
require_once "../../../aliyun-php-sdk-core/Config.php";
$product = "ImageSearch";
$region = "<Region>"; // 執行個體的地區資訊,如: cn-shanghai(華東2), ap-southeast-1(亞太地區東南1) 
$accessKeyId = "<AccessKeyID>"; // 擷取地址: https://ak-console.aliyun.com
$accessKeySecret = "<AccessKeySecret>";
$instanceName = "<InstanceName>"; // 購買的Image Search執行個體名稱,如: imagesearchtest
$domain = "imagesearch.".$region.".aliyuncs.com"; 
$profile = DefaultProfile::getProfile($region, $accessKeyId, $accessKeySecret);
DefaultProfile::addEndPoint($region, $region, $product, $domain);
$client = new DefaultAcsClient($profile);

新增圖片

新增圖片時,商品圖片搜尋執行個體您可以選擇指定或者不指定類目ID,通用圖片搜尋執行個體請不要指定類目ID。
use ImageSearch\Request\V20180120\AddItemRequest;
$req = new AddItemRequest();
$req->setinstanceName($instanceName);
// 讀取檔案內容
$sampleFileName = "./1.jpg";
$content = file_get_contents($sampleFileName);
$req->setCateId("0");
$req->setItemId("1234");
$req->setCustContent("{\"key\":\"value\"}");
$req->addPicture("cloth1", $content);
if (!$req->buildPostContent()) {
    return ;
}
try {
    $response = $client->getAcsResponse($req);
    print_r($response);
} catch(ServerException $e) {
    print "Error: " . $e->getErrorCode() . " Message: " . $e->getMessage() . "\n";
} catch(ClientException $e) {
    print "Error: " . $e->getErrorCode() . " Message: " . $e->getMessage() . "\n";
}

查詢圖片

對於商品Image Search,您可以選擇指定或者不指定類目ID,如果指定則會從您指定的類目ID中進行搜尋,如果沒有指定則會從系統預測出的類目ID中進行搜尋。對於通用圖片搜尋,您不需要指定類目ID。
use ImageSearch\Request\V20180120\SearchItemRequest;
$req = new SearchItemRequest();
$req->setinstanceName($instanceName);
$req->setNum(10);
$req->setStart(0);
// Read Image File
$sampleFileName = "./1.jpg";
$content = file_get_contents($sampleFileName);
fclose($handle);
$req->setSearchPicture($content);
if (!$req->buildPostContent()) {
    return ;
}
try {
    $response = $client->getAcsResponse($req);
    print_r($response);
} catch(ServerException $e) {
    print "Error: " . $e->getErrorCode() . " Message: " . $e->getMessage() . "\n";
} catch(ClientException $e) {
    print "Error: " . $e->getErrorCode() . " Message: " . $e->getMessage() . "\n";
}

刪除圖片

刪除圖片程式碼範例如下。
use ImageSearch\Request\V20180120\DeleteItemRequest;
$req = new DeleteItemRequest();
$req->setinstanceName($instanceName);
$req->setItemId("1234");
$req->addPicture("cloth1");
if (!$req->buildPostContent()) {
    return ;
}
try {
    $response = $client->getAcsResponse($req);
    print_r($response);
} catch(ServerException $e) {
    print "Error: " . $e->getErrorCode() . " Message: " . $e->getMessage() . "\n";
} catch(ClientException $e) {
    print "Error: " . $e->getErrorCode() . " Message: " . $e->getMessage() . "\n";
}