Архив ‘сниппеты’

Вычистить текст от тегов MS Word

Внезапно случается, что когда текст вносится напрямую из Word в WYSWYG-редактор — получается плохо. Чтобы не переделывать руками каждую запись через админку, было принято решение переделать все через консоль. В итоге: < ? if (!mysql_connect ('host', 'user', 'password')){     die (mysql_error ()); }

Логин и парсер Яндекс.Вебмастера

Волею судеб захотелось отфильтровать в одном дампе индексат от неиндексата — полез в Яндекс.Вебмастер. Ну, сразу перейду к расстройству что даже в Я.Вебмастер показывается только первая 1000 проиндексированных страниц — но парсер уже был готов, допиливать его не стал.

Вычистить сайт от вируса iframe

очень просто, если иметь SSH. $ find . | xargs grep -l «<iframe src='badsite'» | xargs sed -i -e 's/bad_code_with_stripping_regex_chars//g' Эта команда заменит весь вредоносный код на ничего.

Колоризируй это, колоризируй то

Иногда людям приходят в голову странные мысли и они спрашивают — «А как подсветить в блоке первые N символов но чтоб типа без встроенных тегов?» Никак. Ну, или так: <script> function colorize (id, num, empty, styleClass){     // id - ID элемента     // num - сколько символов подсвечивать     // empty - считать ли пустые символы за символы для подсветки     // styleClass - какой класс присваивать символам?     var obj = document.getElementById (id);     if (!obj) return;     var regex = empty ? /^((?:[^\s]\s*){3})/ : /^(.{3})/;     obj.innerHTML = obj.innerHTML.replace (regex, «<span class='»+styleClass+"'>$1</span>");      }

Perl — удалить из массива несоответствующие условию элементы

Удаляем все элементы, которые не цифры. Работаем с референсом. #!/usr/bin/perl use strict; use Data::Dumper; my $a = [234235,'a',345,34234,23121]; $a = [grep {/^\d+$/ } @$a]; print Dumper $a; UPD Rommeech заметил багу, исправил

Новый логин Вконтакте — Perl, Curl

Собственно, уже не мудрствуя лукаво — кто хоть немного знает перл — разберётся. Вконтакте добавили редиректики, что не помешает доблестному Curl через них пройти и получить куку в файл. #!/usr/bin/perl -w use strict; use WWW::Curl::Easy; use Carp;

Любимая функция для получения контента

Таскаю за собой по всем модулям и скриптам. sub getURL {   my $params = shift;   croak q[HASH needed as param] if ref ($params) ne 'HASH';   croak q[HREF needed in HASH] if (!exists ($params->{href}));   $params->{href} = q[http://].$params->{href} if $params->{href} !~ /^http (s)?:\/\//;   $params->{headers} = 0 if !$params->{headers};   $params->{ag} = qq ($user_agents[rand(($#user_agents+1))]) if !exists $params->{ag};   $params->{timeout} = […]

Немножко подфиксил бота для Твит-PR

Вызывается с параметром тег [сколько записей смотреть на предмет твиттерчан, по умолчанию 100] Типа perl script.pl followfriday 80 — пролистает 80 последних записей ленты и вычленит из них все встречающиеся ники, которые потом поделит на посты до 140 символов. Запись в кроне, соответственно — # пятница 10 16 * * 5 perl script.pl followfriday # понедельник […]

Новая защита от ботов в формах

Не знаю насколько нова идея — но подумал и сразу изобразил. Суть в том, чтобы пойти от обратного по идее — лишнее поле для бота. Только заполнять поле самим и на JavaScript. Если поле не приходит — значит POST или GET отправлялся напрямую. Ну и JS ещё не все умеют обрабатывать.

Проверялка паролей Яндекса

В свете последних событий насчёт Вконтакте — выложенный дамп 130 тысяч пользовательских логинов и паролей — получение кук с Яндекса — таких почт в этом дампе около 13 тысяч. sub yandexLogin { my ($login, $password, $ip) = @_; croak ('Login needed') if !$login; croak ('Login needed') if !$password; $login =~ s/@.*//; $password = uri_escape ($password); my $ag = q[MegaHacker]; @LWP::Protocol::http::EXTRA_SOCK_OPTS = […]