Exec Vs. System i PHP

Exec Vs. System i PHP


PHP er et programmeringsspråk som brukes til å utvikle rike, interaktive webapplikasjoner. Imidlertid kan det være lurt å ringe eksterne programmer eller systemkommandoer innenfra et PHP program for å legge til ekstra funksjonalitet forbedre effektiviteten. Dette kan utføres ved å 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 systemkommandoer eller eksterne programmer og skript. Dette er viktig for å utvide funksjonaliteten til PHP språket og integreres med andre programmer som kjører på serveren. PHP vil en pause til det 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 hvordan output fra eksternt program håndteres. Systemet () -kommando skriver automatisk resultatet av den utførte kommando til den aktuelle utgangsbufferen. Exec () -kommando returnerer eventuelt resultatet av den utførte kommando som en ekstra matrise variabel.

syntax

Exec () og system () kommandoer har litt annen valgfri syntaks, selv om de både kan kjøres med bare stien til eksternt program. Begge kommandoer krever en kommando formatert som en streng, og har en valgfri avkastning variabel formatert som en peker til en int å indikere avkastningen status for utført kommando-settes til 0 når henrettet uten feil og en annen verdi da ble oppdaget en feil. Exec () kommandoen inneholder i tillegg en utdataparameteren 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.

Sikkerhet

Når du utfører eksterne kommandoer eller programmer, er det spesielt viktig å vurdere sikkerheten i operasjonen. Når du bruker en bruker-leverte innspill, bruker escapeshellarg () eller escapeshellcmd () funksjoner for å fjerne potensielt skadelige operasjoner. Beste praksis innebærer bare utfører en kjent hvit liste over kommandoer, snarere enn bare fjerning av kjente skadelige kommandoer.