Гамму не отправляет специальные символы через командную строку PHP - PullRequest
1 голос
/ 27 июня 2019

Я пытаюсь отправить 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 и прямым вызовом из консоли?

...