第84篇ES之php圖片轉base64位碼及調漢王圖像識別接口及調搜索引擎接口及刪除collection

關鍵詞:更新題庫到ES, php圖片轉base64位碼,調漢王圖像識別接口, 調搜索引擎接口,刪除collection

一、更新題庫到ES(四)

1.1 php圖片轉base64位碼

實現了,代碼如下:

1先搞一個php,上傳文件用的,如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01Transitional//EN"

"http://www.w3.org/TR/html4/loose.dtd">

<html>

  <head>

    <title>New Document </title>

    <metaname="Generator" content="EditPlus">

    <metaname="Author" content="">

    <metaname="Keywords" content="">

    <metaname="Description" content="">

<meta charset="utf-8">

  </head>

  <body>

    <form  method="post"enctype="multipart/form-data"

action="2.2php_photo_base64.php">

      <inputtype="file" name="imgfile"value=''>

      <inputvalue='提交' type="submit">

    </form>

  </body>

</html>

注:注意三點,一是utf-8編碼;二是提交到一個php(2.2php_photo_base64.php),三是提交時要給上傳文件一個文字,方便接收。效果如下:

22.2php_photo_base64.php如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTDHTML 4.01 Transitional//EN"

"http://www.w3.org/TR/html4/loose.dtd">

<html>

 <head>

   <meta name="Generator" content="EditPlus">

   <meta name="Author" content="">

   <meta name="Keywords" content="">

   <meta name="Description" content="">

    <metacharset="utf-8">

 </head>

 <body>

   <?php

     $img = $_FILES['imgfile']['tmp_name']; 

     $base64_img = base64EncodeImage($img);

      echo '這是個圖像:<br>';

      echo '<img src="' . $base64_img .'" style="width:500px;height:500px;" />'.'<br>';

     function base64EncodeImage ($image_file) {

       $base64_image = '';

       $image_info = getimagesize($image_file);

       $image_data = fread(fopen($image_file, 'r'), filesize($image_file));

       $base64_image = 'data:' . $image_info['mime'] . ';base64,' .

chunk_split(base64_encode($image_data));

       return $base64_image;

     }

   ?>

 </body>

</html>

注:注意三點:一是要用uft-8編碼,二是接收時,要用一樣的文件名(imgfile),三是輸出時可以以圖像輸出。還有一個注意點是要獲取臨時文件名(tmp_name),這樣輸出的是一個臨時路徑名,就不用把圖片和程序放在一個文件夾裏了。效果如下:

1.2調漢王圖像識別接口

   //2調漢王的接口識別圖像,返回識別字符串-------------------------------------------------------2

     //    參數:

     //    string  key – 識別授權碼(請詢問漢王)

     //    string  base64img – base64 格式的圖像數據。注意HTTP 調用時 base64字符串要符合Url編碼規範

     //    int  option – 調用選項(=0 純文本;=1 文本公式混合;=2 公式區域同時提供文本和公式結果)

     //    bool  combine – 是否合併識別結果爲一個字符串(true;false)

     $params=array("key"=>"HanvonTestDianzhiJiaoyu","base64img"=>$base64_img,"option"=>"1","combine"=>"true");

     $url ='http://114.215.125.18:8070/HanvonFormula.asmx/QuestionRecoJson';

     $code = json_decode(curlRequest($url,$params),true)['result'];

     echo $code."<br><br>";

     echo "<pre>";

     function curlRequest( $url, $params=array(), $header=array() ){

       $ch = curl_init();

       $res= curl_setopt($ch, CURLOPT_URL, $url);

       curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

       curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

       curl_setopt($ch, CURLOPT_HEADER, 0);

       curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

       curl_setopt($ch, CURLOPT_TIMEOUT, 60);

       if( isset($_SERVER['HTTP_USER_AGENT']) ){

         curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);

       }

       if( $params ){

         curl_setopt($ch, CURLOPT_POST, 1);

         curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));

       }

       if( $header ){

         curl_setopt($ch, CURLOPT_HTTPHEADER, $header);

       }

       $result = curl_exec ($ch);

       curl_close($ch);

       if ($result == NULL) {

         return false;

       }

       return $result;

     }

注:把上述獲取的圖片base64位碼,傳到圖像識別接口裏。需要傳四個參數,一是key,二是base64位碼,三是識別option,四是combine是否合併結果。

1.3調搜索引擎接口,搜題庫的題

     //3調搜索引擎接口---------------------------------------------3

     $url ='http://192.168.1.14:8004/v1/elasticsearch/search/searchs';

     $params = array('type'=>1,'keyword'=>$code);

      print_r(curlRequest($url,$params));

注:需要傳兩個參數,一是搜索類型,是搜索題還是試卷;二是傳入識別的關鍵字,用於題目搜索。

1.4 嘗試搜索兩個關鍵字

  1小知識------刪除mongo數據庫中的表(collection),用如下命令:

db.Problem_temp.drop();

2017年3月25日星期六

發佈了246 篇原創文章 · 獲贊 202 · 訪問量 19萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章