PHP er et programmeringssprog, der anvendes til at udvikle rige , interaktive web-applikationer . Dog kan du ønsker at ringe eksterne programmer eller system kommandoer fra et PHP program til at tilføje ekstra funktionalitet forbedre effektiviteten. Dette kan udføres af PHP exec ( ) eller system () kommandoer , som varierer en smule i funktionalitet og syntaks . Brug
exec () og system () kommandoer bruges fra et PHP program til at udføre system kommandoer eller eksterne programmer og scripts. Dette er vigtigt at udvide funktionerne i PHP sprog og til at kommunikere med andre programmer, der kører på serveren. PHP vil pause indtil eksternt program slutter henrettelse , medmindre produktionen er omdirigeret til en fil eller et andet output buffer.
Forskelle
Den primære forskel mellem exec () og systemet ( ) kommandoer er, hvordan output fra eksternt program håndteres . Systemet ( ) kommando automatisk skriver resultaterne af den udførte kommando til den aktuelle output buffer . Exec () kommandoen eventuelt returnerer output udført kommando som en ekstra matrix variabel.
Syntaks
exec () og system () kommandoer har lidt forskellige valgfri syntaks , selv om de begge kan udføres med blot stien til eksternt program . Begge kommandoer kræver en kommando formateret som en streng, og har en valgfri afkast variabel formateret som en pegepind til en int til at angive tilbagevenden status udført kommando -set til 0, når henrettet uden fejl og enhver anden værdi, når der opstod en fejl . Exec () kommandoen derudover indeholder en output parameter formateret som en pointer til et array variabel der omfatter hver linje af produktionen af den udførte kommandoen uden efterfølgende hvide rum såsom newline tegn.
Sikkerhed < br >
Når du udfører eksterne kommandoer eller programmer , er det især vigtigt at overveje sikkerheden af operationen. Når du bruger enhver bruger -leverede input , skal du bruge escapeshellarg () eller escapeshellcmd () funktioner til at fjerne potentielt skadelige operationer. Bedste praksis indebærer kun udføre en kendt hvid liste over kommandoer , snarere end blot at fjerne kendte skadelige kommandoer.