ЛОМАЕМ СЕРВАК С МОБИЛЫ! - транскодинг html2wml. ManderX Спецвыпуск Xakep, номер #030, стр. 030-040-3 Тулза может работать как шелл-команда или как cgi'шка. Второе нам как раз и надо. Использовать так: /cgi-bin/html2wml.cgi?url=http://www.servak.com/index.html (обязательно нужно указывать "http://"). Тулза имеет хорошую документацию, много параметров и настроек, что есть гуд. Еще имеет кучу сэмплов, для теста и форму. Сразу видно, что ребятки упорно занимаются проектом и не бросят его. Хорошо прокомментированные настройки сможешь найти в самой cgi'шкt, а параметры запуска - в файле readme.txt (ссылка выше). Один из плюсов этого скрипта - разделение не на карды, а на деки. Поясняю: при разделение сайта на карды (как это делает H2W) приходится часто жать "Next", так как кадров становится очень много, ведь сайты-то не маленькие, а памяти может не хватить, поэтому лучше использовать разделение деками (смотри скрин). В доке так же содержится море теоретической инфы, полезные линки, обзор эмуляторов WAP, а инфа, как известно, лишней не бывает. Теперь тесты. Как и предыдущий транскодер, этот тоже уже установлен, надо было только найти его, "Гугл", как всегда, спас - http://neonatus.net/cgi-bin/html2wml.cgi. Ну что же, поехали: www.xakep.ru через этот транскодер открылся, но как только я прошел по ссылке произошла ошибка фильтрации <pre> (и такие ошибки при тестинге встречались и дальше). Это связанно с самой cgi - она плохо филтрует <pre>, о чем я доложил автору, возможно, скоро будет обновление =). Дальше для разнообразия будем смотреть securitylab.ru: 1. Зашли. Все нормально. Первое впечатление от этого скрипта лучше, чем от H2W. Во-первых, все картинки заменены [IMG], во-вторых не надо нажимать "Next" так часто, как это приходится делать при работе с H2W (вспомни про то, что я говорил выше). Вообще, если бы я не знал, что эта html-страница, я бы подумал, что это полноценная wap-страница. Зашел в раздел сайта "документы". 2. Текст, в отличие от первого транскодера, более читабельный, то есть слова не сливаются. С формами этот транскодер тоже справился. Для этого я сходил на http://netcraft.com/ через этот транскодер и как видишь, вбил в форму "www.xakep.ru". ДРУГИЕ СПОСОБЫ Хочу добавить, что существуют еще другие транскодеры, но они не были включены в обзор из-за нефункциональности. Например, LazyPHP (http://script.emanual.ru/?a=21&i=42) имеет размер исходника 3 kb (для сравнения html2wml - 60 kb), и, соответственно, мало возможностей. У меня под Вынь он так и не запустился =(. Хотя автор уверяет: "Программа была испытана на: Win98/PHP 4.03/Apache 1.3.12 1.11.2000 LazyWAP v.0.5" (дата впечатляет). Конечно, все это хорошо, но сайты оптимизированные под WAP РУКАМИ всегда будут выглядеть лучше, чем те, которые мы конвертировали (хотя, порой html2wml.cgi реально удивляет). Но руками тоже не всегда охота все делать... а если еще и в WML разбираться с нуля надо, то вообще караул. Хотя если страницу ты будешь лепить только для себя (наколбасишь всякие cgi/port scanner'ы с веб-интерфейсом), то можно воспользоваться PHP lib HawHaw (желательно что бы ты знал еще и php =)). Берем тут: http://script.emanual.ru/?a=21&i=40. Фишка в том, что используя класс из hawhaw.inc ты можешь строить страницы на "языке" (!!!) hawhaw. Поясняю: страница сможет отображаться как в WAP-браузере так и в привычном браузере. То есть, скрипт сам определит какой у юзера браузер и в зависимости от от этого выведет или html-страницу, или wml-версию. Но еще раз говорю, ни ту, ни другую ручками тебе писать не придется. Писать ты будешь ОДИН раз на маленьком "языке" HawHaw (точнее это не язык, а php-класс), который был создан средствами PHP. Ну а в освоении HawHaw тебе поможет этот талмуд (я освоил за час чтения): http://www.hawhaw.de/ref/php/index.html и FAQ: http://www.hawhaw.de/faq.htm (читай сначала ФАК). FINISH Оба транскодера имеют свои недостатки, но у последнего их, все-таки, меньше, хотя глюк с <pre> чуть-чуть поубавил мои восторги от скрипта. Надеюсь, его скоро исправят. Но при себе всегда надо иметь ссылки на оба, потому что, если один не фурычет, можно попробовать другой. |