PHP

PHP

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

Если изначально все выбирали PHP за его простоту и ясность, то сейчас его выбирают скорее за дешевизну поддержки и доработки. Порог вхождения к использованию языка очень и очень низкий, конкуренция очень высокая, зарабатывать программированием на PHP трудно. По-этому, если вы только начинаете работать в web, то стоит задуматься, не начать ли с изучения какого-то другого языка, например, Python, Perl или Ruby.

Решения

PHP-аналог python **kwargs

function test( $var ){
    extract($var);
    print $a.$b;
}
test(array("a"=>"При", "b"=>"вет!" ));

Отправка почты через SMTP

Пробую делать на одном хостинге отправку почты через функцию mail(). Письма приходят, но с заголовками какой-то бардак. mail.ru вообще отправителя не смог определить. Пишу провайдеру вопрос «в чём дело». Ответ: «на нашем хостинге нужно делать отправку сообщений через smtp». Что делать? Надо было решать, и оказалось довольно просто.

На хостинге есть поддержка PEAR. В PEAR есть пакеты Mail, Net_SMTP и Net_Socket. Эти пакеты надо положить в корневую директорию своего сайта. Далее в коде делаем:

include "Mail.php";
$mailObj = &Mail::factory( "smtp", // тут 'smtp' - это способ отправки письма, есть и другие
    array( // массив с параметрами подключения
        "host" => "localhost",
       "port" => 25
    ));
$e = $mailObj->send(
   $_POST["email"], // куда отправить
    array( // формируем http заголовки письма
       'Subject' => $_POST["subject"],
       'From' => Config::$fromEmail,
       'Content-type' => "text/html; charset=\"utf-8\""
    );,
    $_POST["text"]
);
if (is_a($e, 'PEAR_Error')) { // is_a - функция сверяет тип переменной с указанным
    print($e->getMessage() . "<br>");
}

Разработка GUI приложений на PHP

PHP всех победит. Самый любимый язык web-разработчиков теперь может использоваться для создания stand-alone приложений! Смотрите проект PHP RAD DevelStudio.

Пока могу сказать очень мало: скачал дистрибутив, установил, создал проект "hello, world!" на основе шаблона, скомпилировал - и всё работает! Автономный exe-файл создан! Это просто счастье!

Остаётся узнать - все ли возможности языка могут быть использованы в этой ide. Пробовал в обработчике события загрузки приложения подгрузить php-библиотеку через include. Получилось, но как-то не радует: код приложения скомпилирован, а код библиотеки - остаётся открытым.

Компилирование консольных php-приложений

Для разработки консольных приложений можно использовать компилятор Roadsend. Пробовал компилировать в exe вывод "HelloWorld!". Получилось. Более подробно не смотрел, т.к. интересовали gui.

Понимаю так, что в обоих случаях в созданный exe включается виртуальная машина php. И ей скармливаются php-скрипты. Т.е. не настоящая компиляция (аналогично py2exe), - просто складываем все необходимые файлы в одном месте. Т.е. такакя компиляция подойдёт для довольно ограниченного круга задач.

Время в миллисекундах

<?php
function millisec(){
    return array_reduce( 
        split( ' ', microtime() ),
        create_function('$x,$y', 'return $x+$y;')
    );
}
$m = millisec();
$n = millisec();
echo $m - $n;
echo microtime();