PHP Batch Client

From Textserver wiki
Revision as of 12:03, 21 January 2016 by Padro (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
 1 #! /usr/bin/php5
 2 
 3 <?php
 4 
 5 //////////////////////////////////////////////////////////////////
 6 //
 7 //  Example client to submit an interactive request to TextServer 
 8 // SERVICENAME service. 
 9 //  Input may be a plain text or a text file.  No ZIP files.
10 //  Output will be in the requested format (XML, json, conll)
11 //
12 /////////////////////////////////////////////////////////////////
13   
14   $h = curl_init();
15   
16   // set query elements
17   echo 'Input ZIP file: '; $fname = rtrim(fgets(STDIN));
18   echo 'Language: '; $lang = rtrim(fgets(STDIN));
19   echo 'Output format (xml,json,conll,naf): '; $out = rtrim(fgets(STDIN));
20   echo 'TextServer Username: '; $user = rtrim(fgets(STDIN));
21   echo 'TextServer Password: '; $pwd = rtrim(fgets(STDIN));
22 
23   // build request
24   $TextServer_URL="http://frodo.lsi.upc.edu:8080/TextWS/textservlet/ws";
25   $service="SERVICENAME";
26   curl_setopt($h, CURLOPT_URL, $TextServer_URL."/processQuery/".$service); 
27   curl_setopt($h, CURLOPT_POST, true);
28   curl_setopt($h, CURLOPT_POSTFIELDS, array(
29                                        'username' => $user,
30                                        'password' => $pwd,
31                                        'file' => '@'.realpath($fname),
32                                        'language' => $lang,
33                                        'output' => $out,
34                                        'interactive' =>'0') );
35   curl_setopt($h, CURLOPT_HEADER, false);
36   curl_setopt($h, CURLOPT_RETURNTRANSFER, 1);
37 
38   // execute request
39   $result = curl_exec($h);
40 
41   // check for any error
42   $err = curl_getinfo($h, CURLINFO_HTTP_CODE);
43   if ($err != 200) {
44     print "HTTP ".$err." - ".$result."\n";
45     exit();
46   }
47   curl_close($h);
48 
49   // Server response should include a job tokenID, retrieve it
50   $tkid = (string) new SimpleXMLElement($result);
51   print "Job submitted. Token id=".$tkid."\n"; 
52 ?>