2011-05-09 26 views
1

我可以選擇直接通過CGI執行程序,也可以使用PHP exec/system。有什麼不同?你也可以說哪一個更安全?直接CGI調用或PHP exec/system?

+0

如果你說「直接通過CGI」,那麼這就需要一個exec()調用。 Hencwhy不會有太大的區別,也可能不是安全方面的。 (但很難說,因爲你沒有提供足夠的上下文。) – mario 2011-05-09 13:57:23

+0

感謝馬里奧,我有一個CGI腳本,它需要一個userName變量,然後開始從另一個網站提取數據,將其放入MySQL數據庫。現在我正在考慮調用這個腳本的最佳方式是什麼。性能方面有明顯的區別嗎? – 2011-05-09 14:04:04

回答

0

通過CGI執行腳本與直接執行腳本沒有多大區別。只需使用PHP,CGI方式,並做到:

exec("SCRIPT_FILENAME=cgi.php QUERY_STRING=userName=user123 php-cgi"); 
// use escapeshellarg() for variable parameters! 

大多數CGI環境變量都已經在當前的PHP環境,所以你只需要重寫一些。例如,QUERY_STRING對應於$_GET[]變量。

性能方面沒有什麼區別。然而,這通常比通過網絡服務器調用另一個子請求file_get_contents("http://localhost/cgi.php?user=123")要快。

+0

再次爲您的幫助而歡呼。 – 2011-05-09 15:52:10