Архив метки: php

Встроенный веб-сервер PHP (windows way)

Если нельзя, но очень хочется, то можно.
Народная мудрость

Стандартные билды php под windows обладают встроенным веб-сервером. Использовать его не в development-целях разработчики не рекомендуют, практически запрещают.
Конечно же отладить что-то через браузер намного удобнее, чем использовать консоль с чужой кодировкой.
Читать далее

Заглушка sendmail для php mail()

Классическая функция для отладки — заглушка sendmail под php mail. Функция заглушки sendmail — перенаправить письма, отправленные через стандартную функцию php mail(). Вместо отправки, сохранить письма на локальной машине, в какой-то удобной папке.

Не только удобно, а прежде всего правильно, на этапе разработки (development stage) не отправлять ничего не значащие письма, а просто сохранять email в папке.

Когда-то давно, использовал для этих целей заглушку sendmail из «денвера» (собственно единственное что скачал и использовал из denver-а). Но вместо того чтобы переносить этот артефакт на новую систему, тоже давно, просто написал скрипт на php.

Читать далее

Функция рабочего времени — Исходники PHP

Из исходников системы мониторинга.

Наблюдение за всеми индикаторами мониторинга работает круглосуточно.
Для некоторых индикаторов понадобилось использовать в качестве условия значение «работает офис или нет».
Читать далее

Почему не работает srand и mt_srand (PHP)

— О боже мой, они убили Кенни!
— Сволочи!
«Южный парк»

Псевдо/случайные числа

Случайные числа широко используются из соображений безопасности практически в каждой CMS. Вопросам получения случайных чисел посвящено уйма диссертаций и прочих научных трудов. Но вот на практике все решается простым вызовом функции php rand() или mt_rand(), в качестве результата отдающих случайное число (точнее псевдослучайное, но для простоты этот факт опустим)
Читать далее

Выражения должны быть регулярными

Как и утренний стул. Так по крайней мере заявляет мой доктор.

Итак, время от времени нам (а говорю я про песочницу веб-программистов), приходится работать с регулярными выражениями. И если это не банальная проверка e-mail, шаблоны для которой есть уже во всех приличных библиотеках, а что-то посерьезней, то приходится изрядно повозиться.
Конечно если вы не знакомы с основами, то рекомендую прочитать пост который подготовил Archick о основах — регулярные выражения php.

А учитывая то что в последние пару недель я снова пиратствую, можете ожидать от меня интересных постов по теме.

Кстати по теме, ловлю себя на мысли что чаще всего использую группы символов с исключением, вида [^…]. Т.е. группа символов, включающая все символы кроме тех что указаны вместо троеточия.

Например вот это

/блаблабла ([^»]+) блаблабла/

в вольном переводе означает:

Боец, собери все отсюда и до забора первой кавычки и принеси сюда.

I, Parser. Как я пиратствовал. Я, Парсер

На днях увлеченно вспоминал опыт годичной давности по парсингу сайтов разработке информационных баз в сети Интернет. В общем пиратствовал.

На этот раз все прошло существенно быстрее и комфортнее.

Работа закончена и теперь я с чистой совестью и полными карманами, отдаю в хорошие руки набор пирата. Почти новый.

Набор включает:
1. Человека с прямыми руками и со знанием PHP и регулярных выражений.
2. Сервер или локальную машина с апачем+пхп+mysql, подключенную к безлимитному каналу.
3. Скрипт загрузки индекса необходимых страниц и скрипт загрузки самих страниц.
4. Парсер, вытаскивающий нужные данные из выкачанной кучи мусора.
5. Красивый шаблон для оформления результатов. Excel, xml, csv или html.
6. Ну и какой же пират, без попугая-матершинника и черной повязки на глаз.

В выборе железа — предпочтительнее локальная машина или выделенный сервер. У шаред хостингов — масса ограничений. Особенно у дешевых. Вешать это все дело на крон — занятие крайне неблагодарное. Проверено.

При загрузке данных все решается просто — через curl. Пока админы пьют пиво — качаем все в один поток, с одного IP, без refferer, с простым User agent. А пока они допьют — все ихнее золотишко уже у нас. Хе-хе.

Пункты 3 и 4 комбинируются по ситуации. Все скрипты можно объединить в один большой цикл с одновременной выкачкой-парсингом. Если база маленькая то лучше так и поступить.

Самое трудоемкое во всем этом — написать регулярное выражение и исправить в нем все ошибки. Дальше — дело техники.

И… соблюдайте копирайт! :)