php-скрипт для массовой рассылки писем.

so_mailer (Simple-order mailer) предназначен для массовой рассылки писем и тех случаев, когда в одном скрипте по циклу функцией mail() это делать нельзя по причине ограничений либо на время выполнения скрипта (Fatal error: Maximum execution time of N second exceeded), либо на количество отправленных сообщений в период времени, накладываемого хостингом.
Continue reading


Настройка отправки почты через sendmail из php в Debian(Ubuntu)

1. Устанавливаем sendmail

apt-get install sendmail-base sendmail-bin

2. Настраиваем php

Правим в /etc/php5/apache2/php.ini

sendmail_path  = /usr/sbin/sendmail -t -i -f mail@mail.r

где mail@mail.ru любой реально существующий email, который в отправляемых письмах будет указан, если from не указано.

3. Перезапускаем apache

/etc/init.d/apache2 restart

Определение кодировки текста на PHP.

Данное решение в своей реализации опиралось на статью, опубликованную на Хабре

Краткое содержание идеи.

  1. Типичный текст на русском языке имеет вполне определённую частоту появления в нём определённых символов(этот принцип давно и успешно используется для взлома шифров, основанных на простой замене).
  2. Символы языка в различных кодировках имеют различные коды, и можно составить таблицу спектров (частоты появления кода символа), для каждой из кодировок.
  3. Проходя текст посимвольно, прибавляем частоту кода каждого символа в к соответствующей кодировке. Это как бы рейтинг кодировки
  4. Кодировка  с наибольшим рейтингом по завершению строки и считается кодировкой текста.

Что привнесено

  1. Добавил ещё одну важную кодировку: UTF-8.
  2. Причесал код.
  3. Собрал всё в одну библиотеку, готовую к употреблению.

На строках менее 10 кириллических символов детектор иногда ошибается, строки длиной 100 и более символов определяются практически безошибочно.

Скачать код

Пример использования

$charset = new charset();
$text = file_get_contents("before.html");
echo $charset->detect($text);

Быстрая установка формы обратной связи.

Большинство CMS имеют встроенные модули, позволяющие реализовать формы обратной связи, однако нередко возникает ситуация, когда такой формы не предусмотрено, либо проще поставить внешнюю, чем разбираться с внутренностями малоизвестной или малопригодной для подобных изменений CMS.

Ниже даётся описание простого скрипта, который устанавливается отдельной папкой и обеспечивает функционал формы обратной связи с регулируемым числом полей во всплывающем окне
Continue reading


Скрипт, автоматизирующий создание виртуально хоста apache, сборку PHP как CGI+suexec и создание файла зоны DNS.

В статье установка нескольких версий PHP на один сервер (с помощью CGI и suexec) рассмотрена сборка и установка PHP в качестве CGI+suexec. Настало время объединить всё это в один скрипт, который

  1. Создаст нужные папки и симлинки
  2. Соберёт PHP из исходников
  3. Настроит виртуальный хост Apache, для работы с этим доменом
  4. Создаст файл зоны DNS для Bind

Админу остаётся только

  1. Обработать скрипт напильником для работы на своём сервере
  2. Создать пользователя, от которого будет запускаться php-скрипт.
  3. Запустить скрипт, исходники которого даны ниже в формате
    ./build_vh.sh {Имя домена} {Имя пользователя} {Алиас домена для тестирования}

 

Скачать исходник


Реализация однослойной нейронной сети — перцептрона для задачи классификации автотранспорта

Введение

Иску́сственные нейро́нные се́ти (ИНС) — математические модели, а также их программные или аппаратные реализации, построенные по принципу организации и функционирования биологических нейронных сетей — сетей нервных клеток живого организма. Это понятие возникло при изучении процессов, протекающих в мозге, и при попытке смоделировать эти процессы.

Википедия

Простая нейронная сеть

Простая нейронная сеть

Нейронные сети не программируются в привычном смысле этого слова, они обучаются. Возможность обучения — одно из главных преимуществ нейронных сетей перед традиционными алгоритмами. Технически обучение заключается в нахождении коэффициентов связей между нейронами. В процессе обучения нейронная сеть способна выявлять сложные зависимости между входными данными и выходными, а также выполнять обобщение. Это значит, что в случае успешного обучения сеть сможет вернуть верный результат на основании данных, которые отсутствовали в обучающей выборке, а также неполных и/или «зашумленных», частично искаженных данных.

Наиболее простой и распространённой, но, тем не менее, способной решать широкий круг задач является топология сети, называемая однослойным перцептроном. Он довольно прост в реализации и обучении и довольно востребован в задачах классификации.

Continue reading


Установка нескольких версий PHP на один сервер (с помощью CGI и suexec)

  1. поставить для apache модуль suexec
  2. нужно собрать необходимые исполняемые файлы php(нужных версий)
  3. Надо найти в каталоге собранного php файлик asapi.cgi/php-cgi и скопировать, например, сюда /var/www/cgi-bin под именем php5.2 или php4.4 (для соответствующих версий php)
  4. Выставить нужные права для /var/www/cgi-bin/php5.2 или /var/www/cgi-bin/php4.4, владелец и группа у исполняемого файла И КАТАЛОГА В КОТОРОМ ОН ЛЕЖИТ должны быть такие-же как у web-сервера, например для debian — это www-data, а права — 775 (если мы хотил, чтобы php исполнялся от другого пользователя — назначаем во владельца и группы его)
  5. Прописать в виртуалхосте(или .htaccess) неодходимые строчки
  6. Перезапустить apache

Необходимые строчки для виртуалхоста apache

ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
AddType application/x-httpd-php .php
Action  application/x-httpd-php /cgi-bin/php5.2
#Action  application/x-httpd-php /cgi-bin/php4.4
SuexecUserGroup www-data www-data

Установка Zend Optimizer на PHP

Качаем

Находим там ZendOptimizer.so, копируем в нащежное песто и прописываем полный путь к нему в php.ini

zend_extension=/{Надёжное место}/ZendOptimizer.so

Не забудьте перепустить Apache, если php собран к нему модулем