Wykonaj polecenie Shell w PHP za pomocą EXEC

Wykonaj polecenie Shell w PHP za pomocą EXEC

Skrypt PHP służy głównie do tworzenia aplikacji internetowych, ale może być używany również do innych celów. PHP ma kilka wbudowanych funkcji do wykonywania poleceń związanych z systemem. exec () jest jednym z nich. Służy do wykonywania poleceń Shell lub dowolnego programu ze skryptu PHP. W tym samouczku można użyć tej funkcji w PHP.

Składnia:

String exec (String $ command [, array & $ wyjściowe [, int & $ return_var]])

Ta funkcja może wziąć trzy argumenty. Pierwszy argument jest obowiązkowy, który przyjmie polecenie systemowe. Pozostałe dwa argumenty są opcjonalne. Drugi argument służy do przechowywania wyjścia polecenia w tablicy. Trzeci argument tej funkcji służy do przechowywania statusu powrotu wykonanego polecenia. Ta funkcja zwraca ostatni wiersz z wykonanego wyjścia polecenia.

Przykład-1: Użyj funkcji exec () bez opcjonalnych argumentów

Podstawowe użycie funkcji exec () pokazano w tym samouczku. Utwórz plik PHP z następującym skryptem, aby wiedzieć, w jaki sposób funkcja exec () zwraca dane wyjściowe polecenia. 'PWD„Polecenie użyto w poleceniu pierwszego exec () skryptu, które zwraca jeden wiersz wyjściowego. 'LS -LA„Polecenie zostało użyte w poleceniu drugiego exec (), które może zwrócić wiele wierszy wyjściowych. Jeśli dowolne polecenie zwróci wiele linii, wyjście wyświetli ostatni wiersz jako wyjście.

// Przechowuj wyjście wykonanego polecenia
$ output1 = exec ('pwd');
// Wydrukuj wartość zwracania
echo $ wyjściowe 1;
Echo "
";
// Przechowuj ostatni wiersz wykonanego polecenia
$ output2 = exec ('ls -la');
// Wydrukuj wartość zwracania
echo $ wyjściowe 2;
?>

Wyjście:

Następujące dane wyjściowe pojawi się po uruchomieniu powyższego skryptu z serwera. 'PWD„Polecenie zwraca bieżący katalog roboczy jako wyjście, które pokazano na pierwszym wyjściu. 'LS -LA„Polecenie zwraca informacje o szczegółach listy katalogów, a drugie wyjście pokazuje ostatni wiersz z wyjścia polecenia.

Przykład-2: Wydrukuj wszystkie wartości wykonanego polecenia

W poprzednim przykładzie w funkcji exec (. Poniższy przykład pokazuje użycie opcjonalnych argumentów funkcji exec (). Utwórz plik PHP z następującym skryptem. W tym skrypcie używane są dwa opcjonalne argumenty exec (). 'ls -l„Polecenie jest używane w pierwszym argumencie, który zwraca listę katalogów. $ wyjście Zmienna jest tutaj używana do przechowywania wyjścia polecenia w tablicy. Status $ Zmienna służy do przechowywania wartości statusu zwrotu wykonanego polecenia. Dane wyjściowe polecenia zostanie wydrukowane jako tablica, a każda wartość tablicy wyjściowej zostanie wydrukowana za pomocą „for Loop”.

// przechowuj wyjście wykonanego polecenia w tablicy
exec („ls -l”, $ wyjściowe, $ status);
// Wydrukuj wszystkie wartości zwracane wykonane polecenie jako tablica
print_r ($ wyjściowe);
Echo "
";
// Wydrukuj wyjście wykonanego polecenia w każdym wierszu
Foreach ($ wyjście jako $ wartość)

echo $ wartość."
";

// Wydrukuj status powrotu wykonanego polecenia
Echo $ status;
?>

Wyjście:

Następujące dane wyjściowe pojawi się po uruchomieniu powyższego skryptu z serwera. Wyjście pokazuje tablicę zawierającą wyjście polecenia „LS -L” i każda wartość tablicy w każdym wierszu.

Przykład-3: Wydrukuj wszystkie pliki PHP bieżącego katalogu

Poniższy przykład pokazuje listę wszystkich plików PHP bieżącego katalogu za pomocą funkcji exec (). Tutaj 'LS -L *.php„Polecenie jest używane tutaj, aby znaleźć listę wszystkich plików PHP bieżącego katalogu.

 Tag jest używany w skrypcie do wydrukowania zawartości tablicy z formatem ustrukturyzowanym.

// przechowuj wyjście wykonanego polecenia w tablicy
EXEC („LS -L *.php ', $ wyjściowe);
// Wydrukuj wyjście wykonanego polecenia
Echo "
";
print_r ($ wyjściowe);
Echo "
";
?>

Wyjście:

Następujące dane wyjściowe pojawi się po uruchomieniu powyższego skryptu z serwera.

Przykład-4: Uruchom skrypt bash

W tym przykładzie można wykonać dowolny skrypt bash za pomocą funkcji exec (). Utwórz plik bash o nazwie pętla.cii z następującym skryptem, który wydrukuje wszystkie liczby równe od 1 do 20.

pętla.cii

#!/bin/bash

#Initializuj licznik

licznik = 1
#Teruj pętlę, aż wartość licznika $ będzie mniejsza lub równa 20

podczas gdy [$ Counter -le 20]
Do
#PROPRE PRAWIDŁOWE

Jeśli [[$ Counter%2 -eq 0]]
Następnie
#Print $ licznik bez nowej linii

echo „$ Counter”
fi
#Increment $ licznik o 1

((licznik ++))
zrobione

Utwórz plik PHP z następującym skryptem, aby uruchomić skrypt bash. 'pętla bash.cii„jest używany jako pierwszy argument funkcji exec ( pętla.cii plik skryptu. 'dla każdego„pętla służy do wydrukowania każdej wartości $ wyjście z przestrzenią.

// Uruchom skrypt bash
Exec („pętla bash.sh ', $ wyjściowe);
echo „Wszystkie liczby parzyste w ciągu 1-20 to:
";
// Wydrukuj nasze puty za pomocą pętli
Foreach ($ wyjście jako $ wartość)

echo $ wartość."";

?>

Wyjście:

Następujące dane wyjściowe pojawi się po uruchomieniu powyższego skryptu z serwera. Wyjście pokazuje wszystkie liczby parzyste w ciągu 1 do 20.

Przykład-5: Uruchom polecenie „Dir” za pomocą funkcji exec ()

Polecenie „Dir” działa jak polecenie „LS”. Poniższy przykład pokazuje, w jaki sposób polecenie „Dir” można wykonać za pomocą skryptu PHP. Utwórz plik PHP z następującym skryptem, który przechowuje dane wyjściowe polecenia „Dir” w nazwie tablicy $ wyjście oraz wartość statusu w wymienionej zmiennej $ return. funkcja var_dump () jest używany tutaj do wydrukowania struktury $ wyjście tablica z informacjami typu danych.

// Uruchom polecenie „dir”
exec („dir”, $ wyjściowe, $ return);
// Wydrukuj wartość statusu zwracania
echo „Wartość zwracana polecenia„ dir ”to $ return \ n”;
Echo "
";
// Wydrukuj wyjście polecenia
var_dump ($ wyjściowe);
Echo "
";
?>

Wyjście:

Następujące dane wyjściowe pojawi się po uruchomieniu powyższego skryptu z serwera.

Wniosek:

W tym samouczku wyjaśniono różne zastosowania funkcji exec (. Niektóre inne funkcje istnieją również w PHP, aby wykonać ten sam rodzaj zadania.