可能重複:
Safe executing shell scripts; escaping vars before execution
我想通過PHP傳遞$_SERVER
數據exec()
功能,運行後臺進程的另一個腳本。
通過簡單的參數我不喜歡這樣寫道:
exec("/usr/bin/php -f bg.php parameter1 > /dev/null &");
但我認爲這是不可能直接傳遞數組給這個函數。所以我試了serialize($_SERVER)
。但現在有一個更大的問題。諸如引號,分號和許多其他字符會破壞shell命令並且無法正常工作。
那麼有什麼解決方案來解決這個問題?
你試圖簡單地放入引號內的序列化的陣列?這個策略對我有效:'exec(「/ usr/bin/php -f bg.php'」.serialize($ _ SERVER)。''parameter2>/dev/null &");' –