Korzystając z tej strony zgadzasz się z polityką prywatności i regulaminem.
Akceptuj
WebInside.plWebInside.plWebInside.pl
  • Aktualności
  • Technologie
  • WWW
  • E-marketing
  • AI
  • Poradniki
  • e(Biznes)
Szukaj
  • Kontakt
  • Forum
WebInside.pl © 2023.
Czytasz: UNIXowy Demon w PHP, cz. 2
Udostępnij
Zaloguj się
Powiadomienia
Aa
WebInside.plWebInside.pl
Aa
Szukaj
  • Strona główna
  • Aktualności
  • Technologie webowe
  • Publicystyka
  • E-marketing
  • Poradniki
  • AI
  • Technologie
  • Artykuły partnerskie
  • Więcej
    • Kontakt
    • Mapa strony
Masz już konto? Zaloguj się
  • Aktualności
  • Technologie
  • WWW
  • E-marketing
  • AI
  • Poradniki
  • e(Biznes)
WebInside.pl © 2023.
WebInside.pl > Technologie webowe > UNIXowy Demon w PHP, cz. 2
Technologie webowe

UNIXowy Demon w PHP, cz. 2

WebInside.pl
Ostatnia aktualizacja: 19.08.2009
WebInside.pl
Udostępnij
Udostępnij

Część druga publikacji o demonie UNIXowym, która prezentuje całą stworzoną przez nas klasę oraz plik inicjujący demona.

Zawartość
Ostateczny wygląd naszej klasyPlik inicjujący demonaBudzimy demona do życiaPodsumowaniePodziękowania

Ostateczny wygląd naszej klasy

Po zebraniu wszystkiego do kupy i napisaniu metody _doTask() cała klasa wygląda następująco (plik OnetNewsDaemon.class.php):

<?phprequire_once('phpmailer/class.phpmailer.php');class OnetNewsDaemon extends Daemon {    var $rssUrl    = '';    var $sleepSec  = 60;    var $newsCount = 3;    var $smtpHost       = '';    var $smtpUser       = '';    var $smtpPass       = '';    var $senderEmail    = '';    var $senderName     = '';    var $recipientEmail = '';    var $pidFileLocation = '/tmp/ondaemon.pid';    function _doTask() {        $newsList = $this->_getNewsList($this->newsCount);        if ($newsList !== false) {            $this->_sendMail(implode("n", $newsList));        }        sleep($this->sleepSec);    }    function _getNewsList($limit = 3) {        $newsList = array();        $result = preg_match_all('/<title>(.*)</title>/Umi', @file_get_contents($this->rssUrl), $match);        if ($result) {            for ($i = 1; $i < $limit; $i++) {                $newsList[] = $this->_clearPolishChars($match[1][$i]);            }            return $newsList;        } else {            return false;        }    }    function _clearPolishChars($text) {        $pl = array (            '&#260;' => 'A',            '&#261;' => 'a',            '&#262;' => 'C',            '&#263;' => 'c',            '&#280;' => 'E',            '&#281;' => 'e',            '&#321;' => 'L',            '&#322;' => 'l',            '&#323;' => 'N',            '&#324;' => 'n',            '&#211;' => 'O',            '&#243;' => 'o',            '&#346;' => 'S',            '&#347;' => 's',            '&#377;' => 'Z',            '&#378;' => 'z',            '&#379;' => 'Z',            '&#380;' => 'z'        );        return strtr($text, $pl);    }    function _sendMail($text) {        static $mail = null;        if (!$mail) {            $mail = new PHPMailer();            $mail->Host     = $this->smtpHost;            $mail->Mailer   = 'smtp';            $mail->From     = $this->senderEmail;            $mail->FromName = $this->senderName;            $mail->AddAddress($this->recipientEmail, $this->recipientEmail);            $mail->Subject  = 'OnetNewsDaemon';        }        $mail->Body = $text;        return $mail->Send();    }}?>

Zauważmy, że wewnątrz metody _doTask() wykonaliśmy funkcję sleep(). Zrobiliśmy tak gdyż metoda _doTask() jest wykonywana cały czas w pętli (do zamknięcia demona). Naszym celem jest wysyłanie wiadomości co godzinę, więc musimy na pewien czas zatrzymać działanie skryptu.

Plik inicjujący demona

Mając już gotową klasę naszego demona musimy jeszcze tylko stworzyć plik, który zainicjuje nam program. Stworzymy więc prosty skrypt tworzący instancje naszej klasy OnetNewsDaemon i ustawiający parametry wiadomości.

Plik wyglądać będzie tak (ondaemon.php):

<?php$onetNewsDaemon = new OnetNewsDaemon();$onetNewsDaemon->smtpHost       = ''; // Adres serwera SMTP$onetNewsDaemon->smtpUser       = ''; // Nazwa uzytkownika$onetNewsDaemon->smtpPass       = ''; // Haslo$onetNewsDaemon->senderEmail    = ''; // Email nadawcy$onetNewsDaemon->senderName     = ''; // Nazwa nadawcy// Aby wyslac SMS na adres w sieci Plus GSM nalezy wpisac adres w postaci:// [email protected]// gdzie X-y zamieniamy na numer telefonu w sieci Plus GSM.// Jezeli nie posiadamy telefonu w Plus GSM to zostaje nam podanie swojego// prywatnego numeru e-mail i tam wyslanie newsow.$onetNewsDaemon->recipientEmail = ''; // Email odbiorcy// Startujemy naszego demona$onetNewsDaemon->start();?>

Opisałem wszystkie zmienne więc pozostaje nam tylko wpisać swoje ustawienia i uruchomić demona.

Budzimy demona do życia

Aby uruchomić demona musimy z poziomu konsoli systemowej wykonać następującą komendę:

php ondaemon.php

Aby zobaczyć czy nasz demon działa wystarczy wyświetlić listę procesów używając komendy:

ps x

Tak wygląda to u mnie:

Aby zakończyć prace demona wystarczy wykonać komendę:

kill <Numer PID demona>

W moim przypadku będzie to:

kill 6788

A tak oto prezentuje się SMS z listą najświeższych newsów na ekranie telefonu komórkowego:

Podsumowanie

Stworzyliśmy działający i co najważniejsze praktyczny przykład wykorzystania demona UNIXowego. Możliwości jakie otwierają się przed nami są praktycznie nieograniczone. Po przez własny serwer WWW, po skrypt monitorujący zmianę dynamicznego IP, temperaturę procesora, udostępniający mechanizmy zcentralizowanego logowania, skończywszy na mechanizmie parzenia kawy i robieniu śniadania do łóżka.

Wszystko to może nam zapewnić demon, a dzięki wykorzystaniu PHP stworzenie jego jest dużo bardziej proste niż zagłębianie się w tajniki C/C++

Przedstawiany w tym artykule przykład dostępny jest do ściągnięcia pod adresem:

Podziękowania

Pozwolę sobie na odrobinę prywaty i podziękuję Maruszowi za podsunięcie pomysłu na przykładowego demona i użyczenie swojego telefonu komórkowego do testów.

Może Cię zainteresować

Sprawdź, jak zostać testerem oprogramowania lub Java developerem! Poznaj kursy online!

Architektura globalnego e-commerce: Jak zbudować sklep gotowy na podbój świata?

Java obchodzi 30. urodziny – język programowania który zmienił świat technologii

Jak zacząć projektować aplikację, nie mając gotowego pomysłu?

Serwer dla małej firmy – czym kierować się przy jego wyborze?

WebInside.pl 2009-08-19 2009-08-19
Udostępnij ten artykuł
Facebook Twitter Kopiuj link Wydrukuj
Udostępnij
Poprzedni artykuł UNIXowy Demon w PHP, cz. 1
Następny artykuł Tomasz Karwatka, webusability.pl
Zostaw komentarz lub opinię

Dodaj komentarz Anuluj pisanie odpowiedzi

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Najnowsze artykuły

Procesor AMD Ryzen 7
Najlepsze procesory z pamięcią 3D V-Cache: Wydajność dla graczy i profesjonalistów
Technologie
Jak przygotować sklep internetowy na automatyzację obsługi klienta?
Artykuły partnerskie
the nvidia logo is displayed on a table
Nvidia przyłapana? Gigant AI chciał kupić miliony pirackich książek
AI Aktualności
Najczęstsze błędy w SMS marketingu: jak nie przepalić budżetu?
E-marketing
4 najczęstsze cyberzagrożenia w przemyśle
Technologie
Jak uratować zaschnięty tusz do drukarki? Skuteczne domowe sposoby i porady
Poradniki
Model 3D jako wspólne źródło danych dla projektu, produkcji i montażu
Artykuły partnerskie
Dlaczego wideo z telefonu sprzedaje na TikToku lepiej niż profesjonalne spoty?
Artykuły partnerskie
Dwa ekrany zawsze pod ręką – zalety korzystania z monitora przenośnego na co dzień
Technologie
Rola nowoczesnych technologii w procesie rehabilitacji
Artykuły partnerskie
banner
Chcesz umieścić swoją reklamę w portalu WebInside.pl?
Skontaktuj się z nami, a zaproponujemy interesujące formy reklamy.
Skontaktuj się

Inne polecane artykuły

Technologie webowe

Sprawdź, jak zostać testerem oprogramowania lub Java developerem! Poznaj kursy online!

5 min czytania
Technologie webowe

Architektura globalnego e-commerce: Jak zbudować sklep gotowy na podbój świata?

7 min czytania
MacBook Pro showing programming language
Technologie webowe

Java obchodzi 30. urodziny – język programowania który zmienił świat technologii

9 min czytania
AktualnościTechnologie webowe

Jak zacząć projektować aplikację, nie mając gotowego pomysłu?

9 min czytania
woman in black top using Surface laptop
Technologie webowe

Serwer dla małej firmy – czym kierować się przy jego wyborze?

5 min czytania
Technologie webowe

Jaki hosting wybrać pod Laravel? Kompleksowy przewodnik dla twórców aplikacji webowych

6 min czytania
programming language
Technologie webowe

Kaskadowość w CSS – wszystko, co musisz wiedzieć

7 min czytania
two women talking while looking at laptop computer
Technologie webowe

Darmowe kreatory stron WWW – stwórz swoją stronę w godzinę

14 min czytania
//

WebInside.pl – portal technologiczny. Aktualności ze świata technologii, webmastering, marketing internetowy, AI, poradniki.

 

Partnerzy

Wszystkie kategorie

  • AI
  • Aktualności
  • Artykuły partnerskie
  • E-marketing
  • e(Biznes)
  • Poradniki
  • Publicystyka
  • Technologie
  • Technologie webowe

Ostatnio dodane

  • Najlepsze procesory z pamięcią 3D V-Cache: Wydajność dla graczy i profesjonalistów
  • Jak przygotować sklep internetowy na automatyzację obsługi klienta?
  • Nvidia przyłapana? Gigant AI chciał kupić miliony pirackich książek
  • Najczęstsze błędy w SMS marketingu: jak nie przepalić budżetu?

Kontakt

Chcesz się z nami skontaktować? Jesteś zainteresowany reklamą lub artykułem sponsorowanym?

Skorzystaj z formularza kontaktowego lub napisz do nas na kontakt@webinside.pl

WebInside.plWebInside.pl
WebInside.pl © 2023 | Mapa strony | Forum | Polityka prywatności
Witaj ponownie!

Zaloguj się do swojego konta

Zapomniałeś hasła?