Estoy utilizando el Servicio de OCR i2ocr.com para convertir una imagen a texto..

En mi proyecto, tengo que hacer este trabajo de forma automática, así que estoy usando PHP para obtener el texto de la imagen.

En el sitio web de OCR la postdata es la contenida en el formulario de multipart/form-data

Como este:

-----------------------------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

En PHP que estoy usando

$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);

Este código no generar ningún error, pero no tengo ninguna salida.

Necesito ayuda para conseguir la salida de esta solicitud curl.

InformationsquelleAutor user2430116 | 2013-09-07

1 Comentario

  1. 0

    Como este:

    <?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();
    ?>

    utilizar la vista de código fuente para ver el html de respuesta, se puede ver el texto de la imagen (lo siento por mi inglés). Funciona al 100% 🙂

Dejar respuesta

Please enter your comment!
Please enter your name here