Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: файл отдается на скачивание а надо его прочитать
 
 автор: elenaki   (26.10.2015 в 16:47)   письмо автору
 
 

Есть ссылка. По ней скачивается текстовый файл. http://www25.online-convert.com/download-file/ab3ff292a12beeecb10ca13ec1b6c3b8
А мне надо его открыть и прочитать. Скриптом. Не сохраняя нигде, мне он не нужен.

  Ответить  
 
 автор: Trianon   (26.10.2015 в 17:49)   письмо автору
 
   для: elenaki   (26.10.2015 в 16:47)
 

Content-Disposition: attachment; filename="SYMVOLAIO_KOYKLIAMPIS.txt"


м..м?


Upd.

Хотя, если скриптом, то какая нафиг разница.
Но тогда я вообще не понял, в чем проблема.

  Ответить  
 
 автор: elenaki   (26.10.2015 в 18:04)   письмо автору
 
   для: Trianon   (26.10.2015 в 17:49)
 

Нашлась функция. Просто это API. Готовый файл отдают ссылкой.
Но ссылка не на файл, а на скрипт, который, ничего не спрашивая,
разу скачивает файл. Hо я уже нашла, как его прочитать. Теперь
другая проблема - весь файл в массиве, а поиск ключа по значению
не работает. Что - то с кодировками.

  Ответить  
 
 автор: Trianon   (26.10.2015 в 19:48)   письмо автору
 
   для: elenaki   (26.10.2015 в 18:04)
 

там utf8 совершенно однозначно.

  Ответить  
 
 автор: elenaki   (27.10.2015 в 10:18)   письмо автору
 
   для: Trianon   (26.10.2015 в 19:48)
 

Я делаю:


 $key_1 = array_search('Evolution', $result_arr); 
 echo "key 1 ".$key_1;   
 $key_2 = array_search('2092', $result_arr);   
 echo "<br>key 2 ".$key_2;   


мне надо узнать ключи. И ничего не находит. Ни цифры, ни латинское название, ни греческое.

  Ответить  
 
 автор: Trianon   (27.10.2015 в 10:24)   письмо автору
 
   для: elenaki   (27.10.2015 в 10:18)
 

Еще бы строчку, после которой содержимое вышеуказанного URL оказывается в $result_arr
А то мало ли что там внутри осело...

  Ответить  
 
 автор: elenaki   (27.10.2015 в 10:34)   письмо автору
9.2 Кб
 
   для: Trianon   (27.10.2015 в 10:24)
 

Вот массив (в аттаче). Его я прогоняю через функцию


function StripBadUTF8($str) { // (C) SiMM, based on ru.wikipedia.org/wiki/Unicode 
$ret = ''; 
for ($i = 0;$i < strlen($str); ) { 
    $tmp = $str[$i++]; 
    $ch = ord($tmp); 
    if ($ch > 0x7F) { 
        if ($ch < 0xC0) continue; 
        elseif ($ch < 0xE0) $di = 1; 
        elseif ($ch < 0xF0) $di = 2; 
        elseif ($ch < 0xF8) $di = 3; 
        elseif ($ch < 0xFC) $di = 4; 
        elseif ($ch < 0xFE) $di = 5; 
        else continue; 

        for ($j = 0;$j < $di;$j++) { 
            $tmp .= $ch = $str[$i + $j]; 
            $ch = ord($ch); 
            if ($ch < 0x80 || $ch > 0xBF) continue 2; 
        } 
        $i += $di; 
    } 
    $ret .= $tmp; 

return $ret; 




для очистки от плохих символов.

  Ответить  
 
 автор: elenaki   (27.10.2015 в 10:49)   письмо автору
6 Кб
 
   для: elenaki   (27.10.2015 в 10:34)
 

А изначально был такой файл


API сейчас не отвечает почему-то (послала им письмо), читаю из сохраненного файла. Удаляю символы переноса строки.


       $word = preg_split('#([\n\r]+)#Usi',$file_content);
        $word = array_diff($word,array(''));
        $result_arr = array_values($word);


В полученном массиве ищется ключ по значению. Пока сделаю так. А когда вернется API, посмотрим...

  Ответить  
 
 автор: elenaki   (27.10.2015 в 17:28)   письмо автору
 
   для: elenaki   (27.10.2015 в 10:49)
 

Все пропало. Вернее, все сделано, но зря. API отдает каждый раз разные по структуре массивы, я ничего не могу потом с ними сделать. Можно настроить для одного, а потом для другого приходится заново искать поля... Единственный, кто читал пристойно pdf-ки, это pdfTables. Но у них всего 50 страниц бесплатно. Я уже лимит исчерпала. Они отдают не текст, а html. Там, конечно, куча мусора, но можно вытянуть нужное и оно всегда будет точно на своем месте.

Где-то мельком видела, что через Google делают такое - загружают ему файл в виде pdf, а скачивают уже в виде html или txt. Не могу найти...

Купила еще 500 страниц... Устала. Всю голову сломала. Надеюсь, их хватит до того момента, когда мы сами начнем создавать договоры и не надо будет чужие логотипы убирать из готовых.

  Ответить  
 
 автор: Deed   (27.10.2015 в 20:10)   письмо автору
 
   для: elenaki   (27.10.2015 в 17:28)
 

Я ничего не понял, что Вам нужно получить из такого http://www.softtime.ru/forum/files/92916-20151027103856.txt файла??
Опишите проблему с самого начала.
Ну, если хотите, конечно...

  Ответить  
 
 автор: elenaki   (28.10.2015 в 09:30)   письмо автору
 
   для: Deed   (27.10.2015 в 20:10)
 

На самом деле это - pdf. Он приходит к нам через систему страхования. Мы пока только налаживаем свою, поэтому с партнерами
работаем по API. Некоторые документы делаем сами. Некоторые пока нет. Но все права на них у нас есть. Наша задача - заменить
на получаемых от партнеров документах их логотип на наш. Это не запрещено. Все данные о партнере остаются в документе. Надо
убрать лишние картинки. Все было неплохо, пока один не начал лепить свой логотип не только в шапке, но и под текстом, откуда я
не могла его вырезать. Библиотека, позволяющая работать с pdf, после вырезки картинки, уродовала текст. Концов я так и не нашла.
Пришлось пойти другим путем - вырезать текст и разместить его снова в тех же местах, где он был, но без фоновой картинки. Это
получилось. Не с первого раза, но получилось. Правда, потом оказалось, что там не 50 страниц в день (нам бы хватило и пяти), а
всего 50 страниц бесплатно. Стала искать другие сервисы. Но одни коверкают греческий, другие просто переводят в бинарный вид.
Нашлась парочка бесплатных, которые делают текст из pdf без ошибок. Но у одного после дня тестов вдруг тоже закончился лимит,
хотя на сайте об этом ничего не сказано. Другой лепит текстовые поля в произвольном порядке. В одном файле телефон, к примеру,
в 30-м элементе, в другом - в 56-м. Так я никогда ничего не найду. Кстати, найдя несколько ранее сконвертированных файлов, из тех,
что я успела скачать до преодоления лимита, обнаружила, что и там поля не соответствуют. Ладно бы, если бы они сдвигались при
при наличии дополнительного поля (например, у одного нет модели, у другого есть), но они скачут безо всякой логики... Один этот
файл я вполне могу прочитать, найти нужные мне поля и разместить в нужном мне месте нового pdf, который я создаю уже на
своем бланке. Но в следующем эти же данные будут в других полях! А в следующем - опять в несовпадающих. Это уже не автома-
тизация, а мучение. Легче в редакторе открыть pdf и все там исправить.

  Ответить  
 
 автор: Deed   (28.10.2015 в 18:36)   письмо автору
 
   для: elenaki   (28.10.2015 в 09:30)
 

Доброго дня!
Первое, что пришло в голову, это после 50 документов удалять куку-счетчик.
Дальше - подумаем.

  Ответить  
 
 автор: elenaki   (29.10.2015 в 14:47)   письмо автору
 
   для: Deed   (28.10.2015 в 18:36)
 

Я пока сделала по-другому - если он (конвертер) не хочет читать все, пусть читает все, но отдает мне только таблицу из центральной части страницы, под которой и лежит этот дурацкий логотип, из-за которого весь сыр-бор. Я буду загружать, как и раньше, pdf с договором, и его же использовать как шаблон. Просто закрою логотип в центре заплаткой, поверх которой напишу то, что мне отдаст конвертер. Так как там таблица, то можно с уверенностью брать нужные поля, они никуда не убегут. А нетабличные данные останутся от старой pdf-ки. Просто я расчитывала и эти данные потом использовать - занести их в базу, например. Ну, пока не получается. Все равно мы скоро должны будем сами эти договоры создавать и печатать уже на своих бланках. Пошла вспоминать SOAP... Всем спасибо.

PS А счетчик у них не в куке, они запросы с IP считают.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования