2013-03-08 88 views
0

我正在使用外部java庫來發送SMS。我用來發送的代碼是這樣的:在PHP中將字符串(包含換行符)傳遞給jar

$command = "java -jar vigsyssmscom4.jar \"1\" \"$phoneNum\" \"$message\""; 
$apiOutput = shell_exec($command . "\n"); 

但是,此代碼不允許$ message包含任何換行符,因爲它將立即執行命令。無論如何,我可以通過命令行傳遞帶有換行符的字符串嗎?

回答

0

我已經修改了jar文件和相關的類來替換所有選定的字符到新的生產線的消息變量。這有助於避免在消息參數中傳遞新行字符。

1

你想看看escapeshellarg:http://php.net/manual/en/function.escapeshellarg.php

$message = "hello\nworld"; 
$command = "echo ".escapeshellarg($message); 
$apiOutput = shell_exec($command); 
var_dump($apiOutput); 
+0

escapeshellarg會刪除窗口中的換行符 – Wee 2013-03-08 10:22:09

+0

啊,我不知道。對不起:$。我不使用窗戶。 – 2013-03-08 10:26:05