Я использую службу OCR i2ocr.com для преобразования изображения в текст.
В моем проекте мне нужно сделать эту работу автоматически, поэтому я использую PHP для получения текста изображения.
На веб-сайте OCR постобразование содержится в форме multipart / form-data
Как это:
-----------------------------32642708628732\r\n Content-Disposition: form-data; name="i2ocr_options"\r\n \r\n url\r\n -----------------------------32642708628732\r\n Content-Disposition: form-data; name="i2ocr_uploadedfile"\r\n \r\n \r\n -----------------------------32642708629732\r\n Content-Disposition: form-data; name="i2ocr_url"\r\n \r\n http://www.murraydata.co.uk/wp-content/uploads/2013/02/ocr-font-500x220.jpg\r\n -----------------------------32642708628732\r\n Content-Disposition: form-data; name="i2ocr_languages"\r\n \r\n gb,eng\r\n -----------------------------32642708628732--\r\n
В PHP я использую
$ch = curl_init(); $dt = array(); $dt['i2ocr_options'] = 'url'; $dt['i2ocr_uploadedfile'] = ''; $dt['i2ocr_url'] = 'http://www.murraydata.co.uk/wp-content/uploads/2013/02/ocr-font-500x220.jpg'; $dt['i2ocr_languages'] = 'gb,eng'; curl_setopt($ch, CURLOPT_URL,"http://www.i2ocr.com/process_form"); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; rv:23.0) Gecko/20100101 Firefox/23.0"); curl_setopt($ch,CURLOPT_ENCODING,"gzip,deflate"); curl_setopt($ch, CURLOPT_HTTPHEADER, Array("Content-Type: multipart/form-data; boundary=---------------------------32642708628732")); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_REFERER, "http://www.i2ocr.com/"); curl_setopt($ch, CURLOPT_AUTOREFERER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, "$dt"); $html=curl_exec($ch); print_r($html);
Этот код не генерирует никаких ошибок, но я тоже не получаю никакого вывода.
Мне нужна помощь в получении результата из этого запроса на завивание.
Как это:
<?php function get($url, $refer, $ch) { curl_setopt ($ch, CURLOPT_URL,$url); curl_setopt ($ch, CURLOPT_POST, 0); curl_setopt ($ch, CURLOPT_COOKIEJAR, realpath('cookie.txt')); // cookie.txt curl_setopt ($ch, CURLOPT_COOKIEFILE, realpath('cookie.txt')); curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; U; Linux i586; de; rv:5.0) Gecko/20100101 Firefox/5.0'); curl_setopt ($ch, CURLOPT_REFERER, $refer); $result= curl_exec($ch); return $result; } function post($url, $refer, $parametros, $ch) { curl_setopt ($ch, CURLOPT_URL,$url); curl_setopt ($ch, CURLOPT_POST, 1); curl_setopt ($ch, CURLOPT_POSTFIELDS, $parametros); curl_setopt ($ch, CURLOPT_COOKIEJAR, realpath('cookie.txt')); // cookie.txt curl_setopt ($ch, CURLOPT_COOKIEFILE, realpath('cookie.txt')); curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; U; Linux i586; de; rv:5.0) Gecko/20100101 Firefox/5.0'); curl_setopt ($ch, CURLOPT_REFERER, $refer); $result= curl_exec($ch); return $result; } function hazlo() { $ch = curl_init(); /* STEP 1. visito la primera pagina para coger sus cookies */ get ("http://www.i2ocr.com/", "http://www.i2ocr.com/", $ch); //STEP 2. Creo un array con los datos del post $data = array( 'i2ocr_options' => 'url', 'i2ocr_uploadedfile' => '', 'i2ocr_url' => 'http://www.murraydata.co.uk/wp-content/uploads/2013/02/ocr-font- 500x220.jpg', 'i2ocr_languages' => 'gb,eng' ); $data2 = http_build_query($data); //STEP 3. Enviamos el el array en post echo post ("http://www.i2ocr.com/process_form", "http://www.i2ocr.com/", $data2, $ch); } hazlo(); ?>
используйте источник просмотра, чтобы увидеть ответ html, вы можете увидеть текст изображения (извините за мой английский). Работает 100% 🙂