您尚未登录,请登录后浏览更多内容! 登录 | 立即注册

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9091|回复: 0
打印 上一主题 下一主题

[php学习资料] 图像识别API调用代码实例(PHP)

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-8 00:13:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提供B2B的移动商务解决方案,通过图像识别技术,通过摄像头扫描直接查询和购买商品。
/ t4 }7 X# h+ q1.添加商品信息
. q# D1 N+ q. G; \2.添加图片
( T, c) q& |1 G3 t5 E8 Q% P3.查询所有产品
4 D9 }2 t8 ^3 u/ @6 U+ G4 `4.查询某个具体产品信息
& H$ m- Y4 c4 p- Y* h( g3 ]8 ~5.删除某个产品8 b. R( y, D  a( i7 K5 `
6.删除图片2 \' ~/ ^0 o- T0 m
7.图像识别4 H9 M: O5 ^. s! a
, q3 ^& P; D5 T3 E
图像识别API文档:https://www.juhe.cn/docs/api/id/117,申请后生成AppKey
7 k/ E/ m* H) M" L2 ^! W3 B9 ]$ k/ K1 x1 `" F( e1 A# S
PHP示例:
% K7 n5 g8 u6 V
  1. <!--?php
    ! P% @, ~' g/ A0 u  ^" s
  2. // +----------------------------------------------------------------------
      Y, V+ u, F/ J9 x5 P# u
  3. // | JuhePHP [ NO ZUO NO DIE ]
    ( H9 U7 v7 F/ M" N& G7 {
  4. // +----------------------------------------------------------------------' p& O- n7 o8 x% X
  5. // | Copyright (c) 2010-2015 http://juhe.cn All rights reserved.
    1 ?, `7 _% }& J$ v9 E0 N9 J) y
  6. // +----------------------------------------------------------------------" Y2 @3 }# T  I4 h0 P& i
  7. // | Author: Juhedata <info@juhe.cn-->: I' |$ z# t& ^! v" o1 }3 O
  8. // +----------------------------------------------------------------------1 d7 @2 G1 b: {  e7 r# i! N

  9. # N0 A2 a  K* o1 F+ P6 `- H2 b% [
  10. //----------------------------------
    : l8 O0 |: A" y1 a$ o( i
  11. // 图像识别调用示例代码 - 聚合数据7 p3 b; R. S3 K
  12. // 在线接口文档:http://www.juhe.cn/docs/117
    + a) Z8 b: e' u' p" P7 R4 Y1 ^
  13. //----------------------------------
      P6 o* d2 z. {" W5 F, T
  14. ; P8 E* s5 Z: y- _0 D! w' w% C$ l
  15. header('Content-type:text/html;charset=utf-8');( k9 G4 `( Q7 D9 U- r
  16. 9 h/ m: N9 b# J3 K0 o7 k* |

  17. ( r' g0 U2 p6 I  G  L! n; H8 J
  18. //配置您申请的appkey
    3 N  r$ ?% h+ d3 M" |/ U& f
  19. $appkey = "*********************";
    4 @! J4 j% `+ I* J' B

  20. : I7 `7 |0 k6 \/ I5 R
  21. ( W& ]0 e' a5 r. D% q; T

  22. % d3 Z  P4 e' S. b* h- K

  23. 0 c  f! O, y  r2 M
  24. //************1.图像上传************
    ; a/ f/ T; G2 K0 X- \# v6 m& z6 v( f
  25. $url = "http://japi.juhe.cn/image_recognition/upload";9 `- x- D2 R! U' Q" d1 ~3 l
  26. $params = array(2 H$ O$ p7 d* i3 W- i
  27.       "file" => "",//上传的单张图片2 K# N: f! Z, ~' Z8 |3 R6 O& Y
  28.       "key" => $appkey,//APP Key2 Y- }/ @7 T; @
  29.       "pname" => "",//包名
    + Q) Q2 a* z( X. [
  30. );
    $ m6 B8 G, J* s0 S
  31. $paramstring = http_build_query($params);
    ' I! S  s9 m) Z3 v: S0 ]# b
  32. $content = juhecurl($url,$paramstring,1);) f8 c& ~* H; }; q, f" {5 Z* }' }
  33. $result = json_decode($content,true);: `7 ?( U2 b( }% d3 a
  34. if($result){  `1 b5 O, h& u" |* R( _6 F
  35.     if($result['error_code']=='0'){
    ( D& R4 c* E6 K7 E% Y, @
  36.         print_r($result);
    + ?' u% U! L1 R* J' @7 i
  37.     }else{- p7 ~) @9 E; ?$ a. k+ _4 _9 n
  38.         echo $result['error_code'].":".$result['reason'];, i% U; Q' |! N; R- A$ O6 S+ S6 D
  39.     }
    5 D9 A+ d# S  y4 f8 n
  40. }else{# W. A! `* O) `0 i; Y7 d# V, b
  41.     echo "请求失败";' Y$ Q, `$ T6 ]5 j+ S4 ]0 ]/ o
  42. }
    4 J3 |; \2 E! P) H# }6 z) O
  43. //**************************************************' k  O  r6 \# O5 E
  44. + j' N" p& d& c/ [# D8 R

  45. ( h8 [; T" n3 s7 b* y$ H# a

  46. " I8 t. X, k+ J% Z

  47. " Q4 D4 Y) H& z7 n& [% w( @: ]' A
  48. //************2.查寻上传图像信息************
    9 Y3 t* N, H1 `1 A
  49. $url = "http://japi.juhe.cn/image_recognition/findAll";' }! @; I/ f* h. x
  50. $params = array() a4 |# l) z0 D2 P/ L! X, ~) Q- l
  51.       "key" => $appkey,//APP Key
    & k1 H/ {' C1 z/ `
  52. );
    # [; O* E7 o1 ]- M; ]+ [* z
  53. $paramstring = http_build_query($params);
    / t# a: O$ X" ]" i! o* ?
  54. $content = juhecurl($url,$paramstring);
    - z2 l2 |- O/ S2 \7 M4 \
  55. $result = json_decode($content,true);% O% ?  R" R6 D# ]& |
  56. if($result){
    $ H2 T8 g4 v) b" b7 ]+ l
  57.     if($result['error_code']=='0'){2 c4 H, i1 e) }9 K  E; }. L
  58.         print_r($result);
    * H9 j. q' ?5 Z. y* j; i+ r
  59.     }else{9 r4 ?% Y& M& B4 ~
  60.         echo $result['error_code'].":".$result['reason'];, }5 B9 y: N! L  a0 G9 J
  61.     }
    ! k% I: M* |! ]# \; ~
  62. }else{2 J7 P, }: [: \' ^9 b( Z) ^8 F9 |) i
  63.     echo "请求失败";1 d; P$ @/ M0 j" g3 g" a
  64. }
    + Z3 P1 h8 ~8 Y% s
  65. //**************************************************& Z- H$ A* j( b; v: F$ k
  66.   o8 F  A; t; Z. q' i( r; i; ]

  67. 2 i% R1 J% F3 A1 Q6 [! m# J
  68. & J, O9 U- L+ i

  69. $ a/ J6 O( R+ w4 C# a* }! K3 @# W  T2 [
  70. //************3.删除图像信息************
    7 A& h( h. I# K1 \; x6 a
  71. $url = "http://japi.juhe.cn/image_recognition/delete";& L1 [. }7 F' T" v1 U0 [
  72. $params = array(& q; ~2 @/ Y% b7 |1 C
  73.       "key" => $appkey,//APP Key3 p9 [, \. q- ?5 P
  74.       "imageId" => "",//图片ID) [& Y6 J2 O; Z; C) \$ N3 h
  75. );
    . |/ Y) |+ J- ^7 y4 t. @
  76. $paramstring = http_build_query($params);
      F' \3 P+ A/ e7 D
  77. $content = juhecurl($url,$paramstring);6 h  ~! p8 Z% J, h0 ~
  78. $result = json_decode($content,true);) m8 c; H( J! d9 @- i
  79. if($result){5 ]- [1 {! g  q8 @( j& J( l) B  _$ M
  80.     if($result['error_code']=='0'){
    ) e2 p" ~8 d% w  g! S8 }8 p
  81.         print_r($result);* \+ Y7 `5 w: n2 k
  82.     }else{9 s, j0 z; ?$ e
  83.         echo $result['error_code'].":".$result['reason'];
    ! x( L) O* C$ ~/ y3 ^, |$ Y& H) d+ f
  84.     }5 X- Y" w) e+ i+ ^9 I
  85. }else{& U! [1 W' v8 T- \+ S, S$ ?' X5 x( |
  86.     echo "请求失败";
    7 {- I0 ~* o- |2 z3 q7 @( z
  87. }
    2 P8 _0 K$ ?  y" R* M$ J( |
  88. //**************************************************# k0 `9 @# a3 _
  89. & j9 j* `6 V! n8 \% l
  90. / ]" b3 A. B! z6 Z* x0 {
  91. + m) M7 S- S1 ~4 A/ z1 c9 ?, N

  92. 1 e$ f7 D5 }2 o7 L# W9 Y& I
  93. //************4.图像识别************
      H4 U5 g) G9 Q+ D+ U
  94. $url = "http://japi.juhe.cn/image_recognition/check";
    0 @0 l5 a( k: Q; {" f9 ?% a/ k
  95. $params = array(
    ) b0 R7 h% S. g9 H3 t
  96.       "file" => "",//上传的图片: ?! J6 T" Q, Y( V: L7 Q
  97.       "key" => $appkey,//APP Key. s7 ]" I( X* p- ]: A3 D
  98.       "pname" => "",//包名
    & ~/ I4 B' x. h2 g2 j6 Q8 i. I4 ^$ P
  99.       "device_name" => "",//设备名称(如android OS或iphone OS)! a! V" [# Z+ F$ v5 c! P
  100.       "device_version" => "",//设备版本(如:4.0.3)
    * Y4 }9 w7 X+ ~
  101.       "latitude" => "",//纬度8 g. d" s& U9 `$ S* A
  102.       "longitude" => "",//经度( y7 f9 S/ G* N$ y( C
  103.       "uuid" => "",//设备id8 r# W7 H. B. i& ?7 P) f
  104.       "zone" => "",//请求地区. T* g" Z, Z: a& f( ~2 @
  105. );" c+ h1 H  d' Z; b5 Z; i) Z/ S  U
  106. $paramstring = http_build_query($params);$ u( G( L! z5 w" A( d4 g: j% a
  107. $content = juhecurl($url,$paramstring,1);
    0 [8 {9 ~" J- Y' e6 O" @- m+ z
  108. $result = json_decode($content,true);% n8 J1 j  X1 M! \; q* M0 k
  109. if($result){
      ?/ Z7 n7 h+ G3 p
  110.     if($result['error_code']=='0'){
    ) m3 m# a( |/ ]/ B. W( C* h
  111.         print_r($result);
    ; g9 Y! X" r0 k1 ]5 Y
  112.     }else{
    ; @7 y* F% X: f* p, b. Y3 X
  113.         echo $result['error_code'].":".$result['reason'];
    + }* f, a3 O( F# Q& V
  114.     }
    ; n+ g( O$ s0 g
  115. }else{
    . r7 t7 s6 y6 g- F8 B* v
  116.     echo "请求失败";- x- }, Y  `9 f6 m9 D6 t3 t
  117. }
    : o, F& ~5 e- ^. l, X) {" P
  118. //**************************************************
    # \9 L8 u( P0 _; `* X

  119. & a: p  E9 E( `2 `9 ?9 v

  120. ) s/ S9 ]; o3 r: ~+ Z  ?& ^/ t
  121. ! v& ~$ K8 v, M

  122. 1 G7 V" |6 a+ G9 Y$ w
  123. : u# M8 P* L: f7 s
  124. /**
    3 L6 M# e% D/ S2 D( A* ~* R/ V
  125. * 请求接口返回内容
    1 o, z7 F1 g( s, X5 d; r2 B
  126. * @param  string $url [请求的URL地址]
    3 {/ v/ d) o, m
  127. * @param  string $params [请求的参数]# c: K' i9 w: \/ r$ b; `: E
  128. * @param  int $ipost [是否采用POST形式]7 @# S) w4 r9 D$ f* _: g. S- v
  129. * @return  string
    / k$ F$ F" V/ P/ O+ ~4 i
  130. */
    6 ~. v: e. H; {9 ]  t) G4 l  f
  131. function juhecurl($url,$params=false,$ispost=0){
    / D9 |% t$ f- P0 z8 \* F/ H
  132.     $httpInfo = array();
    # K5 E3 _, o8 O0 K$ M1 G/ I  }. W1 r
  133.     $ch = curl_init();, B- W6 @5 c- X" q
  134. / N6 ?( k; I/ P: W# ?, U; h
  135.     curl_setopt( $ch, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_1 );
    # L" x6 k$ V$ q3 @. |. k
  136.     curl_setopt( $ch, CURLOPT_USERAGENT , 'JuheData' );
    . D( t! E. D4 P' K0 A9 C1 P
  137.     curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT , 60 );2 s' S( B* j- X0 U4 Q! r, y7 t( b
  138.     curl_setopt( $ch, CURLOPT_TIMEOUT , 60);
    0 a+ U) y% Q# \1 u
  139.     curl_setopt( $ch, CURLOPT_RETURNTRANSFER , true );4 s6 {4 J& T. z- C. k  k
  140.     curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);/ O& a$ H1 |4 d3 A* O% V
  141.     if( $ispost )
    ' L! o+ u$ K! z2 q
  142.     {  j' ]% ?. T1 k% y, c
  143.         curl_setopt( $ch , CURLOPT_POST , true );4 t+ l" x: Z1 l; P" C7 d9 V3 j
  144.         curl_setopt( $ch , CURLOPT_POSTFIELDS , $params );- T9 D% H; I* w9 H
  145.         curl_setopt( $ch , CURLOPT_URL , $url );# C# H+ a! y9 [' `- T4 o7 s0 P
  146.     }
    ! }& W: t4 L8 u/ J
  147.     else
    7 j9 O' _( b( Z; N; ^
  148.     {
    3 ^) H: v; j" C. v- E9 \* f2 h
  149.         if($params){2 `0 z6 i  h2 ?  l; ]
  150.             curl_setopt( $ch , CURLOPT_URL , $url.'?'.$params );$ \! T# v3 M3 x4 t7 O  x8 I
  151.         }else{
    2 n* K  {- P, k8 U2 |
  152.             curl_setopt( $ch , CURLOPT_URL , $url);# R8 K1 Q, w; k- w" r
  153.         }
    7 ]; U  h. s9 S; d
  154.     }# r! B2 l, M" J8 X) A
  155.     $response = curl_exec( $ch );
    / Q5 C- k: N) [# C+ f3 b* N
  156.     if ($response === FALSE) {3 B! Z, U9 H. Y! _5 S" W
  157.         //echo "cURL Error: " . curl_error($ch);
    ' y  i5 g6 X) g; T. h6 [0 ]
  158.         return false;% u2 i7 v9 N5 n! J7 z. S4 @
  159.     }
    & _& J5 d3 }+ D, L7 z+ r" D( x
  160.     $httpCode = curl_getinfo( $ch , CURLINFO_HTTP_CODE );; j, a( V8 R6 _. m  w+ ^. ]: _
  161.     $httpInfo = array_merge( $httpInfo , curl_getinfo( $ch ) );0 b0 Z# ?9 t2 z7 f8 n- H9 U* P5 Q
  162.     curl_close( $ch );" A+ A; \) ?, x1 Q2 S6 C
  163.     return $response;
    0 ?2 ^6 D' \" b: w$ ^
  164. }
复制代码

; t* b9 w7 S0 X* l2 `
. D/ r8 ^: H5 R2 X9 H
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-5-8 09:42 , Processed in 0.114519 second(s), 19 queries .

Copyright © 2001-2024 Powered by cncml! X3.2. Theme By cncml!