Я пытаюсь отправить SMS-строку через контроллер PHP Laravel на Raspberry 2 (Raspian Linux), и у меня есть для этого следующая функция:
public function processCmd($smsmodel) {
$smsnumbertmp=str_replace(' ', '', $smsmodel->smsnumber);
echo 'sudo gammu-smsd-inject TEXT ' . $smsnumbertmp . " -unicode -text " . $smsmodel->smstext;
exec("sudo gammu-smsd-inject TEXT " . $smsnumbertmp . " -unicode -text " . $smsmodel->smstext);
return "success";
}
Результат в командной строке следующий:
Actual Timestamp 2019-06-27 06:33:20sudo gammu-smsd-inject TEXT +436802472618 -unicode -text öäüüüüü
У меня есть сценарий SMS.sh, который вызывает службу каждые 10 секунд и проверяет, есть ли что-нибудь в папке исходящих сообщений для отправки.
Если я использую эту строку прямо в консоли
sudo gammu-smsd-inject TEXT +436802472618 -unicode -text öäüüüüü
все работает нормально - я получаю смс со специальными символами
Если я использую ту же самую строку с командой exec () из контроллера PHP, я получаю пустое SMS. Я много пробовал с кодированием и переключением кодирования, но ничего не работает.
Кто-нибудь может мне сказать, в чем разница между вызовом из PHP и прямым вызовом из консоли?