我正在使用外部java库来发送SMS。我用来发送的代码是这样的:在PHP中将字符串(包含换行符)传递给jar
$command = "java -jar vigsyssmscom4.jar \"1\" \"$phoneNum\" \"$message\"";
$apiOutput = shell_exec($command . "\n");
但是,此代码不允许$ message包含任何换行符,因为它将立即执行命令。无论如何,我可以通过命令行传递带有换行符的字符串吗?
我正在使用外部java库来发送SMS。我用来发送的代码是这样的:在PHP中将字符串(包含换行符)传递给jar
$command = "java -jar vigsyssmscom4.jar \"1\" \"$phoneNum\" \"$message\"";
$apiOutput = shell_exec($command . "\n");
但是,此代码不允许$ message包含任何换行符,因为它将立即执行命令。无论如何,我可以通过命令行传递带有换行符的字符串吗?
我已经修改了jar文件和相关的类来替换所有选定的字符到新的生产线的消息变量。这有助于避免在消息参数中传递新行字符。
你想看看escapeshellarg:http://php.net/manual/en/function.escapeshellarg.php
$message = "hello\nworld";
$command = "echo ".escapeshellarg($message);
$apiOutput = shell_exec($command);
var_dump($apiOutput);
escapeshellarg会删除窗口中的换行符 – Wee 2013-03-08 10:22:09
啊,我不知道。对不起:$。我不使用窗户。 – 2013-03-08 10:26:05