Tässä kirjoituksessa käsitellään komentotulkkikomentojen suorittamista PHP:n kautta. Sen sijaan, että syöttäisit manuaalisesti komennon Linuxissa hakemaan kansiorakennetta, teet tämän siis ohjelmallisesti PHP:n kautta. Mahdollisuus suorittaa komentotulkkikomentoja PHP:n kautta on tehokas ominaisuus, ja sitä tulisi käyttää huolellisesti. Kaikki hosting-palveluntarjoajat eivät salli komentotulkkikomentojen suorittamista PHP:n kautta.
Komentotulkkikomennon suorittamiseen tarkoitettu PHP-funktio on: shell_exec(), exec() tai system().
Nämä funktiot ovat hyvin samankaltaisia, mutta niissä on pieniä eroja:
- shell_exec() palauttaa täydellisen tulosteen merkkijonona. Merkkijono voi olla NULL, jos tapahtuu virhe tai jos komento ei tuota tulosta.
- exec() palauttaa suoritetun komennon viimeisen rivin merkkijonona. HUOMAUTUS: Käytä exec()-funktiota, kun tarvitset pääsyn ohjelman ulostuloon. shell_exec()-funktio ei anna tietoa ohjelman ulostulokoodista.
- system()-funktio on samanlainen kuin shell_exec()-funktio, mutta se näyttää ulostulon suoraan (käyttämättä echo()- tai print()-funktiota).
shell_exec()-funktio & exec()-funktio esimerkki:
Kummatkin komentotulkkifunktiot työskentelevät samalla tavalla. Huomaa aiemmin mainitut erot.
<?echo shell_exec("ls / -ltr");?>
Tulos:
total 2097248 drwxr-xr-x 2 root root 4096 Apr 26 19:07 opt drwxr-xr-x 2 root root 4096 Apr 26 19:07 media drwxr-xr-x 2 root root 4096 Apr 26 19:07 lib64 lrwxrwxrwx 1 root root ….
Vaste sisältää \n rivinvaihtoa. Käytä str_replace(”\n”, ”<BR>”, shell_exec(”ls / -ltr”)) korvataksesi rivinvaihtomerkit HTML-ystävällisillä BR-merkeillä.
Esimerkki:
total 2097248drwxr-xr-x 2 root root 4096 Apr 26 19:07 optdrwxr-xr-x 2 root root 4096 Apr 26 19:07 mediadrwxr-xr-x 2 root root 4096 Apr 26 19:07 lib64
system()-esimerkki:
System()-funktiota käytetään myös komentotulkkikomentojen suorittamiseen PHP:n kautta.
<?system("ls / -ltr");?>
Tulos:
total 2097248 drwxr-xr-x 2 root root 4096 Apr 26 19:07 opt drwxr-xr-x 2 root root 4096 Apr 26 19:07 media drwxr-xr-x 2 root root 4096 Apr 26 19:07 lib64 lrwxrwxrwx 1 root root ….
Käy osoitteessa https://anto.online saadaksesi lisää PHP:tä käsitteleviä postauksia!
Kirjoittajista
Jokainen Anto:n toimituskunnan jäsen on Cloud-asiantuntija omalla alallaan. Anto Online on ylpeä siitä, että se voi auttaa muita Cloud-harrastajia. Kerro meille, jos sinulla on erinomainen idea seuraavaan aiheeseen!
Tue asiaa
Tue Anto Onlinea ja osta meille kahvit. Kahvin ja koodin avulla kaikki on mahdollista.
Osta minulle kahvi