Как мы уже говорили в предыдущей статье про Smarty, в нем имеется возможность написания плагинов. Для тех, кто не знает (хотя уже должны знать по статьям про плагины в WordPress), что такое плагин, немного поясню – это некий программный код, который расширяет функциональность какого-то программного средства без изменения ядра этого средства.
Другими словами, чтобы расширить функциональность Smarty, нам не нужно лезть в его ядро и что-то там менять. Достаточно создать текстовый файл с нужным кодом и поместить этот файл в нужное место. О том, как правильно написать этот код, как назвать и куда положить получившийся файл с этим кодом я и расскажу в этой статье.
Сейчас мы с ходу попробуем написать плагин, который просто будет выводить «Hello, World!». Допустим, мы хотим, чтобы конструкция {hello_world} в шаблоне выводила знаменитую всем фразу. Читать далее »
Тема парсинга XML настолько обширна, что грех был бы не включить в цикл статей про это рассмотрение возможностей XQuery – языка запросов к XML-базе данных на основе XPath. Сразу скажу, что библиотеку для работы с XQuery под PHP я нашел только одну – это библиотека XQuery Lite версии 1.0. Выпущена она была в 2002 году и с тех пор, к сожалению, не развивалась.
Но это не мешает никому ее совершенствовать, т.к. она распространяется с открытым исходным кодом (правда, почему-то никто этого не делает – наверное всем достаточно текущих ее возможностей).
Почему в названии слово Lite? Потому что это сильно облегченный вариант языка XQuery, но Lite вполне достаточно для решения большинства задач по поиску и извлечению информации из XML. Официальная документация по XQuery находится . Читать далее »
Продолжаю тему шума, начатую в первой статье про антикапчу. В прошлой статье я рассмотрел такой метод удаления шума как сглаживание. Он основывается на предположении о том, что пиксель наиболее вероятно должен иметь тот цвет, что и большинство пикселей, что его окружают.
Этот метод конечно хорош, но далеко не идеален. Процент убранного им шума в среднем составляет процентов 50. Усовершенствовать этот метод, увы, невозможно (ну или по крайней мере я не придумал как ). Зато мне в голову пришел другой метод, который как выяснилось, показывает гораздо лучший результат.
Правда, в этом методе есть несколько предположений, на которых он строится. А именно, большинство сгустков шума (рядом расположенных пикселей, которые все являются шумом), по площади занимают меньшее пространство, чем любая буква (или символ) который распознается.
Теперь подробнее что он делает… Первая его задача – определение элементов шума. Он это делает очень просто – находит все изолированные фоном участки заданной площади.
После нахождения таковых он их полностью закрашивает цветом фона (т.е. убирает). Читать далее »
Сегодня я хотел бы затронуть такую тему, как фильтрование нецензурных выражений, или попросту, мата. Понятно, что если Вы владеете каким-нибудь форумом или блогом (сайтом, где можно оставлять сообщения), то как владельцу, Вам будет неприятно, если там будут материться.
Решением этой проблемы может являться конечно и модерация, но представьте себе, что ресурс довольно крупный и в день валятся сотни сообщений. Тут не до модерации
Другим решением может быть фильтр мата. Сразу говорю, что такой фильтр идеальным не сделаешь, потому что изобретательность человека не имеет границ. Идеальный фильтр мата – сам человек, или его замена – искусственный интеллект, который, к сожалению (а может и к счастью), еще не придумали. Читать далее »
В своей первой статье про mod_rewrite я рассказал, как сделать замену url на одно ключевое слово. Теперь можно рассмотреть более сложны варианты.
Начнём с url, которые имеют несколько параметров. На практике это обычно какой-либо предмет и его категория.
В конце первой статьи про работу с графикой в php я приводил в качестве примера небольшую функцию для генерации шума. На самом деле, я ее привел не случайно
В большинстве капч используется очень много методов, которые затрудняют ее распознавание скриптом. И шум является один из таких методов.
Все кто часто пользуется Интернетом, наверняка, повидали немало разных капч. У всех них есть свои методы защиты. И для каждого метода защиты есть свои методы распознавания капч
Задачу распознавания любого образа (в том числе и капчи) можно разделить на несколько этапов:
Восприятие образа
Предварительная обработка
Выделение характеристик
Классификация
На первом этапе, в нашем случае, надо будет просто считать картинку в память.
На втором этапе удаляются шумы, производится перевод изображения в черно-белый цвет, удаляются ненужные части изображения. Читать далее »