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

準備工作

  • 在安裝和使用阿里雲SDK前,確保您已經註冊阿里雲帳號並產生存取金鑰(AccessKey)。具體請參見t1938336.html#task968
  • 下載Image SearchPHP SDK

程式碼範例

完整程式碼範例如下。
<?php
    //使用者根據自己下載包的情況進行引用
    require_once "./aliyun-php-sdk-core/Config.php";
    use ImageSearch\Request\V20190325\AddImageRequest;
    use ImageSearch\Request\V20190325\SearchImageRequest;
    use ImageSearch\Request\V20190325\DeleteImageRequest;
    DefaultProfile::addEndPoint("<region>", "<region>", "ImageSearch", "imagesearch.<region>.aliyuncs.com");
    $profile = DefaultProfile::getProfile("<region>", "<your-access-key-id>", "<your-access-key-secret>");
    $client = new DefaultAcsClient($profile);
    // 添加圖片
    $addRequest = new AddImageRequest();
    $addRequest->setInstanceName("demo");
    $addRequest->setProductId("test");
    $addRequest->setPicName("test");
    $content = file_get_contents("/home/admin/demo.jpg");
    $encodePicContent = base64_encode($content);
    $addRequest->setPicContent($encodePicContent);
    // 選填,是否需要進行主體識別,預設為true。
    // 1.為true時,由系統進行主體識別,以識別的主體進行搜尋,主體識別結果可在Response中擷取。
    // 2. 為false時,則不進行主體識別,以整張圖進行搜尋。
    //$addRequest->setCrop("false");
    //$addRequest->setCrop("true");
    // 選填,圖片的主體地區,格式為 x1,x2,y1,y2, 其中 x1,y1 是左上方的點,x2,y2是右下角的點。
    // 若使用者佈建了Region,則不論Crop參數為何值,都將以使用者輸入Region進行搜尋。
    // $addRequest->setRegion("100,300,100,300"); 
    try {
        $addResponse = $client->getAcsResponse($addRequest);
        print_r($addResponse);
    } catch(ServerException $e) {
        print "Error: " . $e->getErrorCode() . " Message: " . $e->getMessage() . "\n";
    } catch(ClientException $e) {
        print "Error: " . $e->getErrorCode() . " Message: " . $e->getMessage() . "\n";
    }
    // 查詢圖片
    $searchRequest = new SearchImageRequest();
    $searchRequest->setInstanceName("demo");
    $searchRequest->setType("SearchByName");
    $searchRequest->setProductId("test");
    $searchRequest->setPicName("test");
    try {
        $searchResponse = $client->getAcsResponse($searchRequest);
        print_r($searchResponse);
    } catch(ServerException $e) {
        print "Error: " . $e->getErrorCode() . " Message: " . $e->getMessage() . "\n";
    } catch(ClientException $e) {
        print "Error: " . $e->getErrorCode() . " Message: " . $e->getMessage() . "\n";
    }
    // 刪除圖片
    $deleteRequest = new DeleteImageRequest();
    $deleteRequest->setInstanceName("demo");
    $deleteRequest->setProductId("test");
    try {
        $deleteResponse = $client->getAcsResponse($deleteRequest);
        print_r($deleteResponse);
    } catch(ServerException $e) {
        print "Error: " . $e->getErrorCode() . " Message: " . $e->getMessage() . "\n";
    } catch(ClientException $e) {
        print "Error: " . $e->getErrorCode() . " Message: " . $e->getMessage() . "\n";
    }