Pull to refresh
11
0
Головинов Антон @realise

User

Send message

30 чудных библиотек для PHP программистов

Reading time6 min
Views104K
Предлагаю читателям «Хабрахабра» перевод публикации «30 Amazing PHP Libraries for Programmers and Developers». Авторы собрали несколько удивительных PHP-библиотек, которые помогут реализовать некоторые классные вещи, не прилагая много усилий. Цель обзора состоит в том, чтобы преподнести что-то новое, поэтому список не включает популярные библиотеки.
Читать дальше →
Total votes 71: ↑60 and ↓11+49
Comments18

Нормализация запросов в Директе или немного о подводных камнях в подборе слов

Reading time2 min
Views5.9K


Коллеги очень часто просят меня писать побольше о подводных камнях и различных секретах Яндекс.Директ. В этой заметке я расскажу о подводном камне №1 — нормализации или склейке запросов.

Итак, есть клиент РК в тематике авиабилеты. Тематика очень широкая, огромное количество трафика. Есть задача «показываться любому кто ищет любую информацию о любом направлении, доступном для авиаперелета, цена перехода должна быть минимально возможной — 30 копеек». Ок, задача понятна, настраиваем (здесь — подробнее о том как настраивать одноцентовые РК).

Первичный медиаплан показал очень неожиданную картину. Вот фрагмент скриншота из «Оценки бюджета»


Статистика показов дает нам информацию о том что весьма непопулярное у туристов направление в столицу Индии запрашивается в 4-8 раз чаще чем популярные направления в Европу. Но это же бред какой-то! (с)

Смотрим семантическое ядро запроса «Москва Дели» и очень удивляемся.
Читать дальше →
Total votes 73: ↑69 and ↓4+65
Comments24

mod_rewrite — просто о сложном

Reading time4 min
Views63K

Что это такое?


mod_rewrite — это модуль для веб-сервера Apache, предназначенный для преобразования URL-ов. Модуль использует в своей работе правила, которые могут быть описаны как в конфигурации сервера (httpd.conf), так и в файлах .htaccess непосредственно в файловой структуре Вашего сайта. Правила описываются в виде регулярных выражений PCRE

Hello world


Простейший пример. Допустим, Вы захотели, чтобы никто не знал, что Ваш сайт написан на PHP и решили замаскировать расширения файлов. Можно, конечно, внести соответствующую директиву в конфигурацию Apache и тогда все файлы с расширением ".msl" («My Super Language») будут обрабатываться интерпретатором PHP. Но можно поступить проще:
создаем в корне нашего сайта файл .htaccess со следующим содержимым
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)\.msl$ $1.php [QSA,L]


Первая директива включает механизм mod_rewrite в текущей папке и во всех ее подпапках. Вторая указывает модулю mod_rewrite, что текущая папка в файловой системе соответствует корню сайта. Третья — непосредственно правило преобразования URL.

Прочесть его можно так:
Если сразу после начала строки ("^") идет произвольное количество любых символов ( "(.*)" ), причем мы хотим запомнить, что именно это за символы, окружая их скобками, затем идет точка ("\.") (экранируем точку, потому что одиночная точка — это просто любой символ), затем символы «msl» и на этом строка заканчивается ("$"), то заменим исходный URL на следующий: возьмем первую запомненную подстроку в скобках из правила, прибавим к ней ".php", добавим все дополнительные параметры адреса, которые могли быть "[QSA]" и на этом закончим, не будем применять дальнейшие преобразования, если они есть "[L]"

Все, теперь Вы можете смело менять все ссылки, заканчивающиеся на ".php" на ".msl" и писать в своем блоге, что изобрели новый скриптовый язык. Apache, встретив ссылку на «index.msl» с помощью mod_rewrite на лету преобразует ее в «index.php» и вызовет нужный скрипт.

А что еще умеет mod_rewrite?


Читать дальше →
Total votes 45: ↑33 and ↓12+21
Comments12

Как готовить кошек, или аттракцион невиданной щедрости от Microsoft

Reading time6 min
Views836
Уха как квинтэссенция рыбалки

Частенько слышу от разных людей, что Микрософт-де жадный: «Да вы там ухи объелись нереально!», ну и другие, более крепкие выражения.

На что я резонно возражаю – кошек надо уметь готовить, господа. Ведь на самом деле для ИТ-шных компаний Microsoft, при должной сноровке, является очень щедрым партнером. Есть ряд приемов по ужению рыбы, отчего результирующая уха становится гораздо наваристей.
Все секреты сразу раскрывать не буду, оставлю на потом, а сейчас расскажу, что самый обычный веб-дизайнер/девелопер может получить от Microsoft.
Допустим, я делаю сайты, и у меня есть ИП. Ну или ООО. Короче, как-то я решаю вопросы взаимодействия с родным государством. Сайты я разрабатываю, скажем, в ФАРе, на HTML версии 4, а для особо сложных сайтов MySQL у меня еще подвязан, своя админка не хуже битрикса и я даже InnoDB всегда юзаю, а не MyISAM. Вот такой я нереально суровый пацан (хотел написать – из Челябинска, но так как я знаю, что в Челябинске много веб-профи, прекрасные пельмени и достойная улица Покровка с красивыми металлическими статуями, то воздержусь).

Что такой простой труженик мыши и курсора может получить с Microsoft? На самом деле, очень много разных полезностей можно получить. Давайте об этом и поговорим.
Читать дальше →
Total votes 73: ↑49 and ↓24+25
Comments42

Выполнение фоновых процессов из PHP в Windows

Reading time2 min
Views1.8K
В *nix, запуска фоновых процессов, выполняется простым добавлением амперсанда (&) к команде. В Windows, это не так просто сделать из PHP.

Если вы используете в PHP функции системных вызовов, как exec, system, passthru или shell_exec, то эти методы приводят к подвисанию программы, которая ждет завершения работы вызванного процесса.

Описанные ниже методы предполагают, что вы используете PHP-CLI (работу с php из командной строки). Запуск PHP на веб-сервере требует правильной настройки конфигурации и прав доступа, такие как safe_mode, safe_mode_exec_dir и т.д.

Для примера, мы хотим вызвать cmd из PHP, но чтобы программа продолжала выполнять действия.
Приведенные ниже примеры не работают.
exec(«cmd»);
exec(«cmd >NUL»);
exec(«cmd /c cmd»);
exec(«start /b cmd»);
exec(«runas cmd»);

В каждом случае, PHP ждет пока cmd закроется.

Существуют несколько обходных путей, упомянутых в комментариях к документации по PHP к функции exec()

Краткое изложение этих методов, в порядке предпочтения:

Начало процесса с использованием popen и pclose

Этот код должен работать на Linux и Windows.
$exe = «cmd.exe»;
pclose(popen('start «bla» "'. $exe. '" '. escapeshellarg($args), 'r'));

Начало фонового процесса с использованием объекта WScript.Shell

Этот код работает только в Windows.
$WshShell = new COM(«WScript.Shell»);
// Запуск cmd в свернутом состоянии
$oExec = $WshShell->Run(«cmd», 7, false);
// Запуск cmd в фоновом режиме, иконка на панели задач не выводится
$oExec = $WshShell->Run(«cmd /C dir /S %windir%», 0, false);

Более подробнее о методе Run() читайте в msdn.

Начало фонового процесса с использованием утилиты PsExec
Этот метод требует установки бесплатной утилиты PsTools от Sysinternals
exec(«psexec -d cmd.exe»);

Автор этого текста root{Собака}imcms.ru можете отправит ему инвайт.
Total votes 16: ↑10 and ↓6+4
Comments4

Поиск драйверов по id устройства

Reading time1 min
Views12K
Я админю маленькое предприятие, и немного занимаюсь эникейством, например винду вернуть в рабочее состояние, переустановить, драйвера поставить посвежее.
Периодически, попадаются железки, к которым и диска с драйверами нет, и по коду экземпляра устройства из диспетчера устройств не находится ничего ни в Google, ни в Яндексе.
Читать дальше →
Total votes 27: ↑27 and ↓0+27
Comments20

Обработка горячих клавиш при помощи javascript

Reading time2 min
Views2.7K
Захотелось мне в своем проекте использовать горячие клавиши для управления содержимым. Нажал esc — закрылось диалоговое окно, ctrl+left — открылся следующий раздел… Порылся в гуглях-яндексах и, не найдя идеала, решил написать свое решение.
Теперь оно у меня есть — маленькое, легкое, независимое от от других библиотек.
Мне достаточно подключить javascript-файл и написать
$e('ctrl esc').bind("alert('Ыыы');");

Готовый javascript можно взять здесь.
UPD Улучшен код. Спасибо, Yeah, aubt.
Подробнее о возможностях
Total votes 18: ↑16 and ↓2+14
Comments12

netboot.me — загрузим все!

Reading time1 min
Views2.4K
Открылся уникальный сервис для удаленной загрузки/установки операционных систем без толстой «книжки» с дисками наперевес.

С сайта скачивается небольшой образ загрузочного диска (есть варианты для CD/DVD, USB флешек и даже floppy дисков), компьютер загружается с него, определяет сеть (нужен доступ в интернет, естественно), и предлагает варианты загрузки и установки операционных систем из имеющихся на сайте.

На данный момент доступны основные популярные дистрибутивы Linux и BSD систем, также на сайте есть кнопочка для добавления своей любимой операционки.
В процессе добавления можно указать тип образа (Linux Kernel + Initrd, CD ISO образ, и т.д.).

Также на сайте есть небольшой скринкаст, демонстрирующий процесс.

По моему отличная идея для стартапа. :)

ссылка: http://netboot.me
Total votes 17: ↑16 and ↓1+15
Comments18

Защита прав потребителей в России: Мы далеко не последние

Reading time6 min
Views8.5K
Устал я слушать от знакомых причитания по качеству защиты прав покупателей в России и завистливые возгласы: «Вот на западе....».
Нет, я не хочу сказать что я негативно отношусь к западу, просто хочу показать, что и у наших граждан, есть защита. И закон о защите прав потребителей далеко не такой, каким многие его представляют.
Что же даёт нам закон?
Total votes 165: ↑164 and ↓1+163
Comments110

Одноразовая почта

Reading time1 min
Views1.6K
Иногда не хочется светить свой e-mail, чтобы пройти регистрацию на каком-либо ресурсе. Как же быть? Использовать одноразовую почту. Суть такова — нажимаем на кнопку «получить аккаунт» и вуаля, валидный e-mail на 10 минут. Если почта нужна более чем отведенный срок, то можно без проблем его продлить.
Читать дальше →
Total votes 36: ↑21 and ↓15+6
Comments26

Делаем Windows чуточку удобнее: Вкладки в Explorer

Reading time3 min
Views1.7K
Здравствуй уважаемое Хабрасообщество. Это мой первый пост и бла, бла, бла. Так что подсказывайте, если что не так. :)
Итак приступим.
Довольно таки недавно поставил Linux рядом с Windows. И в Linux, а точнее в Konqueror, мне понравилось работать, с файлами, используя вкладки. Думал поискать что-нибудь похожее для Windows, а точнее для Explorer, подобную фичу и как-то забылось так и не поискал. А тут недавно увидел QTTabBar. Данный плагин позволяет приделать обычному Explorer вкладки.
Читать дальше →
Total votes 22: ↑19 and ↓3+16
Comments11

Загрузка в XML строки содержащей entity references (& nbsp; и т.д.)

Reading time2 min
Views4.6K
Задача
В системе с использованием XSLT шаблонов предоставить контентерам возможность просто использовать привычные для них имена сущностей наподобие & nbsp; & mdash; и т.д. без необходимости использования цифровых определений типа & #160;, & #x00A0; или помещения спецсимволов в CDATA

Проблема
При загрузке в XML из базы данных множества блоков у меня возникла следующая проблема: Парсер ругался на неописанные сущности примерно следующим образом: «Entity: line 1: parser error: Entity 'yen' not defined».

Решение
Для того, чтобы при загрузке строки с описанием сущностей не возникало такой проблемы, нужно сделать то, что он от нас ожидает, т.е. описать эти сущности.
описываем сущности
Total votes 9: ↑2 and ↓7-5
Comments16

Сравнение 9-ти способов обфускации email адресов

Reading time1 min
Views1.3K
Вечная проблема при публикации своего email, конечно же не хочется получать в итоге спам на свой ящик, и тут мы начинаем прибегать к различным способам обфускации (чтоб было понятно людям, но не понятно ботам) нашего email адреса.Silvan Mühlemann занялся этим вопросом, создал 9 разных email ящиков, защитил их 9 способами, разместил их на популярном сервере, чтоб их хорошенько проиндексил google, подождал (всего, ничего) 1.5 года и вот он результат...
Читать дальше →
Total votes 51: ↑49 and ↓2+47
Comments71

Ускорение загрузки Windows for fun and profit

Reading time4 min
Views803K
image Пожалуй, начну с того, что если перегружаться 15 раз в год, то любой «тюнинг» процесса загрузки отнимает больше времени, чем будет выиграно на перезагрузках за все время жизни системы. Однако, спортивный интерес берет свое, тем более, что люди интересуется процессом оптимизации быстродействия. А загрузка оказалась самым очевидным кандидатом в примеры того, как на мой взгляд должен выглядеть этот самый процесс. Сразу скажу, что грузиться будем с 5400 rpm винта, грузиться будем в «рабочую» систему: помимо недобитой вендорской крапвари там стоит еще куча всякого типа вижуал студии, антивируса, скайпа, стима, гуглапдейтера и пр…

Про то, почему отключение pagefile-а скорее вредно, чем полезно — как нибудь в другой раз, а пока…
Под катом много однообразных картинок и немножко унылого текста
Total votes 532: ↑516 and ↓16+500
Comments365

Разрабатываем свой Sidebar Gadget

Reading time7 min
Views21K
image
Как часто вы пользуетесь гаджетами боковой панели Windows? А хотелось бы написать свой? Не простой гаджет «Hello World», а действительно полезный, который помог бы оптимизировать затраты времени на определенный кусок работы. Тогда давайте рассмотрим случай, когда вам нужно мониторить нагрузку 10-20 серверов.
Читать дальше →
Total votes 83: ↑73 and ↓10+63
Comments35

Программа от SysInternals превращает ваш ПК в виртуальную машину

Reading time1 min
Views8.5K
Disk2vhd, новый шедевр от Марка Руссиновича — простая в использовании утилита, позволяющая создать образ загруженной, работающей системы в формате Virtual PC. Нужно всего лишь скачать и запустить программу, выбрать диск, на котором расположена ваша Windows и указать, где следует сохранить виртуальную машину. Поддерживается 32 и 64-bit Windows XP SP2 и новее.

Само приложение выглядит так:

image

А вот скриншот уже созданной и загруженной виртуальной машины:

click

Не стоит и говорить, насколько это приложение может оказаться полезным для целей бекапа или разнообразных экспериментов над системой и программами.

Страничка программы: technet.microsoft.com/en-us/sysinternals/ee656415.aspx
Total votes 128: ↑109 and ↓19+90
Comments64

Консоль в Windows — никому не нужна?

Reading time4 min
Views79K
Очень часто приходилось слышать такое от людей, которые много времени проводят за администрированием и другими IT-забавами.

Я, за не очень долгий опыт реального администрирования пришел к обратному выводу. В консоли (командной строке) В Windows можно выполнять очень много разных операций, которые стандартными возможностями не выполняются или выполняются некорректно/неудобно/долго (нужное подчеркнуть)

Совсем недавно где-то на Хабре промелькнуло высказывание из серии «Не думал, что консоль в Виндах что-то может. Хотелось бы узнать об этом побольше».

Вот так и возникло желание написать небольшую статью про основные возможности консоли.
Читать дальше →
Total votes 183: ↑157 and ↓26+131
Comments241

10 шагов для добавления сайта в Яндекс.Новости и Google News

Reading time3 min
Views82K
Яндекс.Новости и Google News являются крупнейшими новостными агрегаторами в России. Так, по данным TNS Russia в июне 2009 года Яндекс.Новости в день посещало чуть более 1,1 миллиона человек. Представьте, какой трафик на сайт могут дать подобного рода системы. И в отличие от, например, News2 и Smi2, новости попадают туда автоматически. Причем, для Google News не нужно совершенно ничего делать — главное, чтобы ваш сайт индексировался Гуглом. Для Яндекса нужно делать полнотекстовый фид со некоторыми тонкостями.
Читать дальше →
Total votes 63: ↑59 and ↓4+55
Comments36

Небольшая автоматизация работы с TortoiseSVN в Windows

Reading time2 min
Views3.8K
TortoiseSVN – замечательный клиент для SVN. И ничего лишнего вроде бы нет и возможностей много.
Один лишь недостаток – работает все это дело через Explorer (Проводник). В других файловых менеджерах работа с TortoiseSVN несколько неудобнее, либо вообще невозможна.
Для Total Commander, пользователем которого я являюсь, решение есть (включить оверлей у иконок, да пользоваться кнопкой с popupMenu на клавиатуре), но на х64 системах оно не работает, проверил лично.

что же делать?
Total votes 7: ↑6 and ↓1+5
Comments15

No to all

Reading time1 min
Views1.1K


При копировании большого количества файлов N-дцатое появление окна «Заменить имеющийся файл Х следующим файлом Х?» может вызвать вывих левой кнопки мыши.

Что делать, если одноименные файлы заменять не нужно, а привычку работать в виндовом эксплорере не побороть?
В таких случаях недостает кнопки «No to all» («Пропустить все»).
Читать дальше →
Total votes 99: ↑86 and ↓13+73
Comments104

Information

Rating
Does not participate
Location
Екатеринбург, Свердловская обл., Россия
Date of birth
Registered
Activity