2011-01-12 20 views
0

Wenn ich die Server-Umgebung kontrolliere und schädliche Injektionen ausfiltern, warum sollte ich in PHP nicht 'mkdir'. $ Perm. ''. $ Name ausführen?Gibt es einen Grund, PHP's exec() nicht zu benutzen?

Und anstatt mit PHP GD, kann ich nicht verwenden exec ('mogrify -resize'. $ Breite. ''. $ Myfile)?

Und für fast jede andere Datei-System/Datei-Manipulation Operation, kann ich nicht die Befehlszeile über exec und parse das Ergebnis? Bin ich N00b?

ich einige thumbnailing schreiben/Logik Ändern der Größe (wieder !!!!) und wird gerne eine Abkürzung nehmen, wenn ich einen sehe - Falle ist es nicht eine Maus bietet ...

+0

Es gibt keine. Es macht jedoch keinen Sinn, es für die Erstellung eines Verzeichnisses zu verwenden. –

+0

Wenn Sie ein Shell-Skript schreiben möchten, warum verwenden Sie PHP? –

Antwort

4

Nun, ein großes Argument Dagegen machen Sie das Skript abhängiger vom zugrunde liegenden System. Es ist nicht so einfach, es auf einen anderen Server zu portieren, auf dem ImageMagick nicht installiert ist, oder es wird Windows ausgeführt, wo die Befehlszeilenbefehle unterschiedlich aussehen.

Ansonsten würde ich sagen, dass es grundsätzlich nichts falsch daran ist. Wenn IM verfügbar ist, würde ich das gerne für die Größenänderung verwenden.

Beachten Sie, dass es eine PHP extension mit einer Schnittstelle zu IM auch gibt.

+0

Das zugrunde liegende System ist meins - ich kontrolliere, was installiert ist, etc .. Was mich (intuitiv) stört - ist warten auf den Exec-Aufruf zu beenden. Ich muss einige Tests durchführen, denke ich. –

+1

Wenn Sie die Ergebnisse der Ausgabe von exec nicht benötigen, können Sie dem Prozess ein & hinzufügen und es wird im Hintergrund ausgeführt. – johnwards

+0

@johnwards danke, wusste das nicht! –

1

Auf UNIX exec() wird eine Abzweigung des initiierenden Prozesses, wie Apache, machen, was eine kostspielige Betriebssystemaktion ist.

Verwandte Themen