PHP är ett programmeringsspråk som används för att utveckla rika , interaktiva webbapplikationer . Dock kanske du vill ringa externa program eller kommandon systemet inifrån ett PHP- program för att lägga till ytterligare funktionalitet för att förbättra effektiviteten . Detta kan utföras genom PHP exec ( ) eller system () -kommandon , som varierar något i funktionalitet och syntax . Använd
exec ( ) och system () kommandon används inifrån ett PHP- program för att köra systemet kommandon eller externa program och skript . Det är viktigt att utöka funktionerna i PHP och samverka med andra program som körs på servern . PHP pausas tills det externa programmet avslutas exekvering såvida produktionen omdirigeras till en fil eller annan utgång buffert .
Skillnader
Den primära skillnaden mellan exec ( ) och systemet ()-kommandon är hur utsignalen från den externa program hanteras. Systemet ( )-kommandot skriver automatiskt resultaten av utfört kommando till den aktuella utgångsbufferten . Den exec ( ) kommando returnerar eventuellt utgång exekveras kommandot som en extra array variabel .
Syntax
exec ( ) och system () -kommandon har lite olika tillval syntax , även om de båda kan utföras med bara sökvägen till externa program . Båda kommandona kräver ett kommando formateras som en sträng , och har en extra avkastning variabel formaterad som en pekare till en int att indikera återkomst status utfört kommando - set till 0 när de utförs utan fel och ett annat värde när ett fel har uppstått . Den exec ( ) kommandot innefattar dessutom en utgång parameter formaterad som en pekare till en array variabel , som omfattar varje rad av produktionen av den genomförda kommandot utan avslutande tomrum som radmatningstecknet . Addera Säkerhet
När verkställande externa kommandon eller program , är det särskilt viktigt att ta hänsyn till säkerheten för verksamheten . När du använder någon användarangivet input , använder escapeshellarg ( ) eller escapeshellcmd ( ) funktioner för att ta bort potentiellt skadliga verksamheter . Bästa praxis innebär bara köra en känd vit lista över kommandon , snarare än bara ta bort kända skadliga kommandon .