這裏的externam節目是我的問題: 我想一些十六進制數據從PHP傳遞給外部應用程序:通行證hexdata從PHP
exec('echo "'.$message.'" | /usr/bin/gateway');
和$消息來自用戶輸入:
測試「 」/ '\'/「 \ 」「 //
和addslashes(),stripslashes()函數沒有解決我的煩惱。 在使用:
$message = stripslashes($_POST['message']);
它的控制檯日誌中我可以看到:
sh: 1: Syntax error: Unterminated quoted string
或空值
於是我開始思考,即轉換輸入十六進制值,並通過他們可能幫助:
exec('echo -e '.$message.' | /usr/bin/gateway');
但後來我得到了麻煩通過十六進制這個回聲的數據。
所以我的問題是如何做到這一點? 我需要傳遞完全相同的字符串,即用戶寫入網關服務。 - 用戶輸入轉換爲十六進制形式,並把它回聲-e (如何?) - 或以某種方式與報價打,斜線
請告訴我,在直接輸出到'exec'調用之前,您正在清理'$ message'變量。另外,如何測試'「/'\'/」\「」//十六進制數據? –