Intereting Posts
Максимальная площадь посева для заданного изображения и пропорции Как повторить транзакцию после тупика с помощью Doctrine? Mysqli Подготовить заявление – Возвращение ложно, но почему? как получить значения, используя php variable / array (nusoap) Что такое DOM Core Level / Version, поддерживаемый PHP DOM? установка yii-mail в существующем веб-приложении Обнаружение имен параметров в php-функции для короткого кода WordPress? Как предоставить внешний параметр учетной записи при создании управляемой учетной записи в полосе с помощью php? Регулярное выражение для соответствия пробелу или концу строки добавление маршрута к маршрутизатору в Zend Framework Использование результатов PHPMailer во многих заблокированных электронных письмах Использовать значения PHP _POST PHP в файле JavaScript Другой вопрос, связанный с циклом php-массива Yii: любое расширение для реализации встроенной карты google Как разрабатывать, подделывая логин для тестирования ACL в Symfony 2

multipart / form-data php curl

Я использую службу 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% 🙂