第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日星期六

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值