Свежие комментарии

    Архивы за Май, 2018

    Делаем скриншот сайта — PHP Скрипт

    Делаем скриншот сайта - PHP Скрипт

    В данной статье опишем как работает скрипт для создания скриншота любой страницы в интернете. Скриншот сайта это небольшая картинка, которая позволяет пользователю не заходя на сайт увидеть как тот выглядит. Скрипт будет полезен если ваш сайт занимается рекламированием других сайтов, например «Яндекс.Каталог» зайдите в любой раздел и вы увидите возле каждого сайта небольшую картинку того сайта которого рекламирует яндекс.

    Функция будет работать следующим образом:

    <?php function(адрес страницы, разрешение, размер, формат); ?>

    разрешение — указывается в пикселях, например (1024×768)

    размер — ограничивается максимальное значение высоты и ширины, масштабированной картинки

    формат — может принимать два значения (JPEG|PNG), по умолчанию «JPEG»

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

    Посмотрим сам скрипт изнутри:

    <?php
    function SiteScreenshot($url, $resolution='1024x768', $size='200', $format='png') {
    	$Filename = md5($url.$size.$resolution).".jpg";
    	// Директория где лежат скрины
    	$ScreenshotDirectory = "screens/";
    	// Проверяем если есть такой файл в папке скринов
    	if(@is_file($ScreenshotDirectory.$Filename)) {
    		return $ScreenshotDirectory.$Filename;
    	}
    	 else {
    	 	$Image = @file_get_contents("http://mini.s-shot.ru/".$resolution."/".$size."/".$format."/?http://".$url);
    		$OpenFile = fopen($ScreenshotDirectory.$Filename, "w+");
    		// Сохраняем изображение
    		$Write = fwrite($OpenFile, $Image);
    		return $ScreenshotDirectory.$Filename;
    	 }
    }
    ?>

    Функция SiteScreenshot получает адрес сайта которому нужно делать снимок. Идет проверка на существование заранее сделанного скрина, если скрипт был запущен повторно для одного и того же сайта, то файл будет открываться из папки screens.

    Запускам скрипт вот таким образом:

    <?php echo "<img src='://:///".SiteScreenshot('live-code.ru')."'>"; ?>

    Если возникнут вопросы по работе скрипта, задавайте их в комментариях ниже.

    Кстати, после неаккуратного обращения с айпадом может пропасть подсветка. Ремонт ipad решит все проблемы в его функционировании или, если необходимо, поможет придать ему первозданный вид при помощи смены дисплея или корпуса.

    Отправка письма из PHP используя SMTP (c вложением)

    Отправка письма из PHP используя SMTP (c вложением)

    В PHP достаточно популярно использовать скрипты которые автоматизируют процесс отправки писем. В данной статье мы рассмотрим простой скрипт который выполняем отправку писем на почту получателей по средствам SMTP(Simple Mail Transfer Protocol). Было бы слишком просто ограничится только этим функционалом, скрипт поддерживает и вложения то есть, вы сможете прикрепить pdf, txt или doc файл в своем письме.

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

    Скрипт работает с классом km_smtp_class.php, класс хорош тем, что поддерживает разные протоколы SSL и TLS которые предоставляют защищенную передачу данных.

    Вот и сам скрипт:

    <?php
    /**
     * Отправка почты через PHP (SMTP)
     * Сделано в Live-code.ru
     * Автор: Mowshon
     * Дата: 11.11.11
     */
    // Подключаем SMTP класс для работы с почтой
    include_once('km_smtp_class.php');
    // Конфигурационный массив
    $SenderConfig = array(
        "SMTP_server"   =>  "smtp.mail.ru",
        "SMTP_port"     =>  "25",
        "SMTP_email"    =>  "user@mail.ru",
        "SMTP_pass"     =>  "1111111",
        "SMTP_type"     =>  "null"
    );
    // Email получателя
    $Receiver = "admin@yahoo.com";
    // Тема сообщения
    $Subject = "Отправляем письмо из PHP";
    // Текст сообщения (в HTML)
    $Text = "Привет!<br />
    Сообщение отправлено из скрипта <strong>Mowshon</strong>
    Сайт: http://live-code.ru";
    // Вложение в письме - адрес к файлу
    $Attachment = '';
    /* $mail = new KM_Mailer(сервер, порт, пользователь, пароль, тип); */
    /* Тип может быть: null, tls или ssl */
    $mail = new KM_Mailer($SenderConfig['SMTP_server'], $SenderConfig['SMTP_port'], $SenderConfig['SMTP_email'], $SenderConfig['SMTP_pass'], $SenderConfig['SMTP_type']);
    if($mail->isLogin) {
        // Прикрепить файл
        if($Attachment) {$mail->addAttachment($Attachment);}
        // Добавить ещё получателей
        $mail->addRecipient('user@mail.ru');
        $mail->addRecipient('user@yandex.ru');
        /* $mail->send(От, Для, Тема, Текст, Заголовок = опционально) */
        $SendMail = $mail->send($SenderConfig['SMTP_email'], $Receiver, $Subject, $Text);
        
        // Очищаем список получателей
        $mail->clearRecipients();
        $mail->clearCC();
        $mail->clearBCC();
        $mail->clearAttachments();
    }
     else {
        echo "Возникла ошибка во время подключения к SMTP-серверу";
     }
    ?>

    Настройка скрипта лежим в основном на массиве $SenderConfig, тут мы должны указать SMTP:сервер, порт, логин и пароль от электронной почты. Опишем каждый ключ массива:

    SMTP_server — адрес SMTP сервера (индивидуальный адрес для разных почт)

    Почта Mail.ru: smtp.mail.ru порт: 25, 587 и 465 (с шифрованием SSL)

    Почта Yandex: smtp.yandex.ru порт: 25, 587 465 (SSL порт)

    Почта Rambler: mail.rambler.ru порт: 25, 587 465 (SSL порт)

    Почта Yahoo: smtp.mail.yahoo.com SSL-порт: 465

    (Если понадобится адрес smtp серверов которые нет в списке — пишите в комментариях)

    SMTP_port — Мы его сверху уже описали для каждого smtp сервера.

    SMTP_email — точнее было бы user но для ясности написал email, указываем адрес электронной почты.

    SMTP_pass — Пароль от электронной почты которая была указана как значение в ключе SMTP_email

    SMTP_type — По умолчанию NULL. Протокол по которому будут отправлены письма. Протоколы: SSL и TLS

    Вложения в письмо можно добавить просо указывая полный адрес к файлу в переменную $Attachment (/var/patch/to/file/File.pdf)

    >> Скачать скрипт

    Если будут вопросы пишите их в комментариях ниже.