PHP er et programmeringsspråk som brukes til å utvikle rike , interaktive web-applikasjoner . Imidlertid kan det være lurt å ringe eksterne programmer eller system kommandoer fra en PHP program for å legge til ekstra funksjonalitet øke effektiviteten. Dette kan utføres av PHP exec () eller system () kommandoer , som varierer noe i funksjonalitet og syntaks. Bruk
exec () og system () kommandoene brukes innenfra et PHP program for å utføre kommandoer systemet eller eksterne programmer og skript. Dette er viktig for å utvide funksjonaliteten i PHP språk og å kommunisere med andre programmer som kjører på serveren . PHP vil ta en pause før den eksterne programmet er ferdig utførelse med mindre produksjonen er omdirigert til en fil eller en annen utgang buffer .
Forskjeller
Den primære forskjellen mellom exec () og system ( ) kommandoer er hvor utdata fra den eksternt program på en bensinstasjon. Systemet ( )-kommando skriver automatisk resultatet av den utførte kommando til den aktuelle utgangsbufferen . Exec ( ) kommandoen returnerer eventuelt resultatet av den utførte kommandoen som en ekstra tabell variabel .
Syntax
exec ( ) og system ( ) kommandoer har litt forskjellige valgfrie syntaks, selv om de kan begge være utført med bare banen til den eksternt program . Begge kommandoene krever en kommando formatert som en streng , og har en valgfri retur variabel formatert som en peker til en int å indikere retur status for utført kommando -set til 0 når utført uten feil og en annen verdi når en feil ble oppdaget . Exec ( ) kommandoen inkluderer i tillegg en utdataparameter formatert som en peker til en rekke variable , som inkluderer hver linje av produksjonen av kommando som kjøres uten etterfølgende mellomrom slik som linjeskift karakter .
Security
Når du utfører eksterne kommandoer eller programmer , er det spesielt viktig å vurdere sikkerheten i operasjonen. Når du bruker noen selvanskaffet inngang , bruker escapeshellarg () eller escapeshellcmd ( ) funksjoner for å fjerne potensielt skadelige operasjoner. Beste praksis innebære bare utføre en kjent hvite listen over kommandoer , i stedet for bare å fjerne kjente skadelige kommandoer.