CompZone.Org :: Artykuły :: Inne
Która technologia najbardziej Cię interesuje?
PHP
ASP
AJAX
SQL
JavaScript
Inna
Sonda Wyniki

Add to Google

Skrypty PHP jako skrypty powłoki

Skrypty powłoki są to skrypty interpretowane podczas uruchamiania, wykonujące pewne czynności. W systemach Unix czy Linux skrypty te są bardzo często wykorzystywane. W systemach Windows też są czasem używane, są to proste skrypty zwane Batch Files

Co to są skrypty powłoki ?

Najprostszym językiem mówiąc, są to skrypty interpretowane podczas uruchamiania, wykonujące pewne czynności. W systemach Unix czy Linux skrypty te są bardzo często wykorzystywane. W systemach Windows też są czasem używane, są to proste skrypty zwane Batch Files (pliki bat). Dają one jednak znacznie mniej możlowiści niż skrypty pisane w systemach klasy *nix (zwane także skryptami shella). W czym można pisać takie skrypty. Najczęściej pisze się je używając albo czystych komend powłoki, wtedy interpretuje je interpreter sh, albo używając powłoki/interpretera bash (lub innej - tsh, csh). Często spotyka się także skrypty w Perlu, a coraz częściej w Pythonie. Nie wiele osób jednak wie, że takie skrypty można tworzyć także w PHP.

Jak tworzyć skrypty shella w PHP?

Skrypty powłoki nie różnią się zasadniczo składnią od zwykłych skryptów w PHP. Jedyną różnicą jest to, że uruchamiane są one z innymi prawami i w innym środowisku. Szczególnie pamiętać o tym należy w systemach *nix, gdyż zwracają one większą uwagę na prawa wykonywania niż systemy Microsoftu. W systemie Linux (a także unix i podobych) warto dodać jedną linijkę tekstu na samym początku, która określa miejsce parsera PHP.

#!/usr/bin/php -q

Dzięki temu po nadaniu skryptowi praw wykonywalności możeby go uruchamiać jak każdy program, nie martwiąc się o podanie skryptu do interpretera. Jeśli nie chcemy nadać skryptowi praw wykonania lub pracujemy w systemie Windows, jedynym sposobem jest uruchomienie interpretera php podając skrypt jako parametr. (Najlepiej w takim przypadku dodać ścieżkę interpretera - php.exe lub php-cgi.exe w zależności od wersji - do zmiennej środowiskowej PATH).

#php -q skrypt.php

Jak pewnie każdy zauważył, przekazuje także do parsera parametr -q. Parametr ten wymusza uruchomienie cichego trybu. Gdybyśmy uruchomili skrypt be parametru wyświetlony zostałby nagłówek PHP, który w zalezności od wersji może wyglądać tak:

Content-type: text/html
X-Powered-By: PHP/5.0.3

Tworzymy skrypt

Stwórzmy teraz prosty skrypt, który pokaże, że w wyświetlaniu tekstu nie ma żadnej różnicy. Skrypt typu helloworld, wyświetli tekst "Witaj swiecie" i zakończy swoje działanie.

 #!/usr/bin/php -q
<?php
echo "Witaj swiecien";
?>

Skrypty te dają duże możliwości, ale co byłoby jeśli chcielibyśmy aby użytkownik mógł wpisać jakieś dane? Oczywiście w skryptach PHP możemy także korzystać ze standardowego wejścia, jak i wyjścia błędów. Ponższy przykład demonstruje jego wykorzystanie.

 #!/usr/bin/php -q<?php
<?
php
//Stworzenie strumienia odpowiadającego za czytanie ze standardowego wejścia
$in = fopen('php://stdin','r');
echo 'Jak sie nazywasz?'."n";
//Pobranie linii ze standardowego wejścia
$line = fgets($in,1024);
echo 'Milo mi cię poznac, '.$line."nn";
//Zamknięcie strumienia
fclose($in);

//Otwarcie strumienia odpowiadającego za pisanie na standardowe wyjście błędów
$err = fopen('php://stderr','w');
//Wypisanie błędu
fwrite($err, 'Uwaga, nie znana osoba'."n");
//Zamknięcie strumienia
fclose($err);
?>

Jak widać na strumieniach wejścia/wyjścia możemy działać tak samo jak na plikach. Standardowo jest jeszcze oczywiście strumień stdout, odpowiedzialny za standardowe wyjście, jednak użycie funkcji echo jest szybsze i nie ma konieczności tworzenia strumienia. Jak łatwo się domyślić ze stdin możemy tylko czytać, a na strumienie stdout i stderr tylko pisać.

Zakończenie

Skrypty pisane w PHP mogą się także przydać w naszej codziennej pracy. Mogą automatycznie wyszukiwać śmieci i usuwać je (jeśli mają uprawnienia). Możliwości wykorzystania skryptów w PHP jest mnóstwo. Myśle, że każdy z czytelników ma już wiele pomysłów jak może sobie uprościć życie używając skryptów powłoki napisanych w PHP.

Kodie @ 29-06-2006 10:49
Brak komentarzy...
Copyright © 2005-2006 Compzone.Org. Kopiowanie i wykorzystywanie materiałów zawartych na tej stronie bez zgody autora zabronione!