Как победить .mht?

Старый mweb

Модератор: [mweb team]

Как победить .mht?

Сообщение Padonak Ср июн 10, 2009 9:03

есть много файлов мхт. задача состоит в том штобэ выдрать из них картинки определенного размера (Ш- не менее столько-то В - не менее столько-то). при попытке сделать fopen() + fread() + fclose() или file() или file_get_contents() получаешь один и тот же результат - что-то там тра-ля-ля 403 FORBIDDEN. чо делать?
Uncaught TypeError: Изображение

Изображение
Аватара пользователя
Padonak
Философ-разговорник
 
Сообщения: 3872
Зарегистрирован: Вт дек 13, 2005 3:23
Откуда: Ростов-на-Дону

Re: Как победить .mht?

Сообщение Berezkin Ср июн 10, 2009 16:09

А может у тебя просто нет права на их чтение?
Windows как презерватив - никому не нравится, но все пользуются.
Аватара пользователя
Berezkin
Заядлый `курильщик`
 
Сообщения: 612
Зарегистрирован: Вт дек 19, 2006 12:39
Откуда: Москоу

Re: Как победить .mht?

Сообщение Padonak Ср июн 10, 2009 16:18

Berezkin писал(а):А может у тебя просто нет права на их чтение?


ну как так нет... на Денвере все происходит - локально. если я те же файлы в тхт переименовываю то все читает. а мхт не хочет сцуко.
Uncaught TypeError: Изображение

Изображение
Аватара пользователя
Padonak
Философ-разговорник
 
Сообщения: 3872
Зарегистрирован: Вт дек 13, 2005 3:23
Откуда: Ростов-на-Дону

Re: Как победить .mht?

Сообщение Padonak Ср июн 10, 2009 16:28

я вот думаю может быть их все и переименовать в тхт? суть проблемы: я тут обнаружил у жены на работе в одном из компов под 3 гига сохраненных страниц с фишек с дефками!!! работал у них один молодой тип и походу насохранял. ну не пропадать же такому добру емайо!! я их разумееца на флэшку и домой :-0 а там такое количество файлов што в ручную палец отвалица сейвить из них кортинге. воот... ну я и решил подло использовать пхп чтобы он мне повыдергивал все большие картинки из файлов создал для каждой серии папку и туда их посохранял. заодно и тренероука какая-никакая для масгоф. наверно придется все в тхт переименовать и на том успокоиться но меня душит жаба что я не могу понять почему мхт не хочет читать
Uncaught TypeError: Изображение

Изображение
Аватара пользователя
Padonak
Философ-разговорник
 
Сообщения: 3872
Зарегистрирован: Вт дек 13, 2005 3:23
Откуда: Ростов-на-Дону

Re: Как победить .mht?

Сообщение Padonak Ср июн 10, 2009 21:36

что никто не знает этой фигни?
Uncaught TypeError: Изображение

Изображение
Аватара пользователя
Padonak
Философ-разговорник
 
Сообщения: 3872
Зарегистрирован: Вт дек 13, 2005 3:23
Откуда: Ростов-на-Дону

Re: Как победить .mht?

Сообщение Berezkin Ср июн 10, 2009 22:52

Вообще вычитал, что .mht это MHTML - http://en.wikipedia.org/wiki/MHTML
Во-первых, прочитай эту статью (на русской википедии, к сожалению, нету).
Во-вторых, коли уж это все-таки HTML, то может и переименовать тупо в .html?
В-третьих, на википедии вычитал, что это таки архив (или пакетный файл, или что-то в этом роде), может в этом траблы?
Windows как презерватив - никому не нравится, но все пользуются.
Аватара пользователя
Berezkin
Заядлый `курильщик`
 
Сообщения: 612
Зарегистрирован: Вт дек 19, 2006 12:39
Откуда: Москоу

Re: Как победить .mht?

Сообщение Padonak Чт июн 11, 2009 9:16

короче говоря забил я на мхт поскольку задача состояла в принципе в выдергивании картинок из кода а не в обработке файлов опреденного расширения. сперва я переименовал все эти файлы в .txt поскольку опытным путем было проверено что тхт парсицо с милой душой. затем составил регулярное выражение (которое как мне кажется не совсем точно подходит но при этом отлично справляется со своей задачей) и проштудировал все полученные тхт-файлы. результат меня крайне порадовал поскольку сохранять картинки вручную жуткий гемор когда речь идет о таком большом количестве файлов. осталось только написать сканер полученных папок с файлами дабы он вытер оттуда все маленьки файлы изображений которые не являются нужными (всякие там блять лого и т.д. и т.п.) но это уже не проблема. после чего можно спокойно насладицо результатом :-)

привожу если кому-то интересно или вдруг понадобится делать то же самое свой кривой но рабочий скрипт:

Код: Выделить всё
<?php
$dir = opendir(".");

while(($file = readdir($dir)) !== false){
if(($file === ".") || ($file === "..")){continue;}
else{if(substr($file, -3) === "txt"){$txt[] = $file;}}
}

closedir($dir);

for($i = 0; $i < 16; $i++){make_pix($txt[$i]);}

function make_pix($filename){
$subdir = 'testdir/'. substr($filename, 0, -4);
mkdir($subdir, 0777);

$handle = fopen($filename, "r");
$contents = fread($handle, filesize($filename));
fclose($handle);

$src_pattern = '#[^Base64 ]([a-zA-Z\/+0-9\n\t\r]{100,})[^\n\t\r\s-]*#i';
preg_match_all($src_pattern, $contents, $matches);

for($i=0; $i< count($matches[0]); $i++){
$src = base64_decode($matches[0][$i]);
$fd = fopen($subdir.'/'.$i.'.jpg', 'w');
fwrite($fd, $src);
fclose($fd);
}
echo 'done <br>';
unlink($filename);
}
?>


единственное что огорчает - приходится запускать многократно т.к. время действия скрипта ограничено (ну или подправить пхп.ини)
Uncaught TypeError: Изображение

Изображение
Аватара пользователя
Padonak
Философ-разговорник
 
Сообщения: 3872
Зарегистрирован: Вт дек 13, 2005 3:23
Откуда: Ростов-на-Дону

Re: Как победить .mht?

Сообщение Muerto Чт июн 11, 2009 10:59

Можно было попробовать $handle = fopen($filename, "rb");
Nadie hablara de nosotras cuando hayamos muerto.
www.muerto.ru
Аватара пользователя
Muerto
Растаман
 
Сообщения: 3597
Зарегистрирован: Пн окт 11, 2004 19:09
Откуда: Москва

Re: Как победить .mht?

Сообщение Padonak Чт июн 11, 2009 16:37

Muerto
ты мне скажи лучше вот что. где-то после создания 250-й директории начинается фатал еррор с воплями о том что мол-де исчерпан лимит памяти и т.д. как с этай херью бароца? спасло тока ковыряние пхп.ини (вместо 128Мб поставил 12800Мб) и перезапуск Денвера. но это ж несерьезно -08-
Uncaught TypeError: Изображение

Изображение
Аватара пользователя
Padonak
Философ-разговорник
 
Сообщения: 3872
Зарегистрирован: Вт дек 13, 2005 3:23
Откуда: Ростов-на-Дону

Re: Как победить .mht?

Сообщение Muerto Чт июн 11, 2009 16:53

Не знаю. Явно "мусор" не убран. Но в пятом он, вроде, автоматом прибирается.
http://phpclub.ru/faq/OOP/Destructors - почитай.
Nadie hablara de nosotras cuando hayamos muerto.
www.muerto.ru
Аватара пользователя
Muerto
Растаман
 
Сообщения: 3597
Зарегистрирован: Пн окт 11, 2004 19:09
Откуда: Москва

Re: Как победить .mht?

Сообщение Padonak Чт июн 11, 2009 16:58

пасиб. сохранил в мхт :-)) дома почитаю
Uncaught TypeError: Изображение

Изображение
Аватара пользователя
Padonak
Философ-разговорник
 
Сообщения: 3872
Зарегистрирован: Вт дек 13, 2005 3:23
Откуда: Ростов-на-Дону

Re: Как победить .mht?

Сообщение kost Вс июн 14, 2009 1:42

Запускай маленькими порциями.

Я обычно делаю скрипт, который выводится в браузере, отработает часть, потом javascript'ом редиректится на себя с параметром, типа parse.php?start=50.

И памяти хватает на все.
Аватара пользователя
kost
Заядлый `курильщик`
 
Сообщения: 701
Зарегистрирован: Ср апр 16, 2003 16:56
Откуда: Санкт-Петербург

Re: Как победить .mht?

Сообщение Padonak Вс июн 14, 2009 14:17

kost писал(а):Запускай маленькими порциями.

Я обычно делаю скрипт, который выводится в браузере, отработает часть, потом javascript'ом редиректится на себя с параметром, типа parse.php?start=50.

И памяти хватает на все.


ну я в итоге к этому и пришел. просто не джаваскриптом редиректил а тупо Ф5 нажимал. и подправил пхп-скрипт чтобы он за раз сканил только 10 файлов

п.с. Кост а ты тоже деваг с фишек парсил? :-)
Uncaught TypeError: Изображение

Изображение
Аватара пользователя
Padonak
Философ-разговорник
 
Сообщения: 3872
Зарегистрирован: Вт дек 13, 2005 3:23
Откуда: Ростов-на-Дону

Re: Как победить .mht?

Сообщение kost Вс июн 14, 2009 19:44

f5 неинтересно нажимать, пусть машина сама работает.

Нет, парсил не девок. Парсил что-то в выдаче google, еще получал геокоординты точек на Яндекс.Картах (около 30000 точек) -- устал бы f5 жать.

p.s. Ну, выкладывай теперь девок распарсеных.
Аватара пользователя
kost
Заядлый `курильщик`
 
Сообщения: 701
Зарегистрирован: Ср апр 16, 2003 16:56
Откуда: Санкт-Петербург

Re: Как победить .mht?

Сообщение Padonak Вс июн 14, 2009 22:37

kost писал(а):... выкладывай теперь девок распарсеных.


на падонке.лв народ тоже ждет :-))

defki.jpg
defki.jpg (37.89 Кб) Просмотров: 14282


надо это все сперва залить на сервак :-)) к тому же там имеются дубликаты и надо будет еще 1 парсинг устроить чтобы сперва их выкосить. но деваг выложу обещаю. я уже и простотрщик сделал. наверно я лучше выберу сотню папок самых симпатичных и их залью. как надоест - маякнете я их заменю на следующих. а то все-таки прилично весят блидищщи эти. вобщем на днях камераден будут вам дефки -03-
Uncaught TypeError: Изображение

Изображение
Аватара пользователя
Padonak
Философ-разговорник
 
Сообщения: 3872
Зарегистрирован: Вт дек 13, 2005 3:23
Откуда: Ростов-на-Дону

Re: Как победить .mht?

Сообщение Alkeeper Вт июн 16, 2009 16:57

Иш ты! А в личку ты мне не тех ли девок распарсеных закинул?
80 лет в интернете.
Аватара пользователя
Alkeeper
Экс-курильщик
 
Сообщения: 4183
Зарегистрирован: Вт ноя 13, 2001 1:01
Откуда: mweb

Re: Как победить .mht?

Сообщение Padonak Вт июн 16, 2009 23:18

Alkeeper писал(а):Иш ты! А в личку ты мне не тех ли девок распарсеных закинул?


ты щетаеж что линки на парнуху лучше постить в общак?
Uncaught TypeError: Изображение

Изображение
Аватара пользователя
Padonak
Философ-разговорник
 
Сообщения: 3872
Зарегистрирован: Вт дек 13, 2005 3:23
Откуда: Ростов-на-Дону

Re: Как победить .mht?

Сообщение Alkeeper Ср июн 17, 2009 6:23

Padonak
Гггг
80 лет в интернете.
Аватара пользователя
Alkeeper
Экс-курильщик
 
Сообщения: 4183
Зарегистрирован: Вт ноя 13, 2001 1:01
Откуда: mweb

Re: Как победить .mht?

Сообщение Muerto Ср июн 17, 2009 9:23

Сбылась мечта Падонка - он теперь владелец порносайта! -13- Теперь бабло лопатой грести будет!
Nadie hablara de nosotras cuando hayamos muerto.
www.muerto.ru
Аватара пользователя
Muerto
Растаман
 
Сообщения: 3597
Зарегистрирован: Пн окт 11, 2004 19:09
Откуда: Москва

Re: Как победить .mht?

Сообщение Padonak Ср июн 17, 2009 16:05

всем камрадам вход бесплатный -03-

пиздящщим на меня умникам - бан по айпи -09-
Uncaught TypeError: Изображение

Изображение
Аватара пользователя
Padonak
Философ-разговорник
 
Сообщения: 3872
Зарегистрирован: Вт дек 13, 2005 3:23
Откуда: Ростов-на-Дону


Вернуться в Архив

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 42