Я пытаюсь выполнить команды AT из PHP.
Я попробовал exec () и shell_exec ()
Пожалуйста, не предлагайте сторонний SMS-шлюз, мой клиент не хочет раскрывать свою личную информацию и хочет отправлять SMS с его собственного сервера.
У меня есть модем GSM, подключенный к последовательному порту, к которому я могу получить доступ через «шпатлевку», как на рис.
И я могу ввести команды AT для отправки SMS, как показано на рисунке ниже.
Я хочу запускать эти AT-команды через PHP.
Привет, я отправляю sms, используя php-класс в Windows 8 этим кодом php.
require "php_serial.class.php"; $serial = new phpSerial; $serial->deviceSet("COM4"); $serial->confBaudRate(115200); // Then we need to open it $serial->deviceOpen(); // To write into $serial->sendMessage("AT+CMGF=1\n\r"); $serial->sendMessage("AT+cmgs=\"+92234444444\"\n\r"); $serial->sendMessage("sms text\n\r"); $serial->sendMessage(chr(26)); //wait for modem to send message sleep(7); $read=$serial->readPort(); $serial->deviceClose();
-require "php_serial.class.php"; $serial = new phpSerial; $serial->deviceSet("COM4"); $serial->confBaudRate(115200); // Then we need to open it $serial->deviceOpen(); // To write into $serial->sendMessage("AT+CMGF=1\n\r"); $serial->sendMessage("AT+cmgs=\"+92234444444\"\n\r"); $serial->sendMessage("sms text\n\r"); $serial->sendMessage(chr(26)); //wait for modem to send message sleep(7); $read=$serial->readPort(); $serial->deviceClose();
-require "php_serial.class.php"; $serial = new phpSerial; $serial->deviceSet("COM4"); $serial->confBaudRate(115200); // Then we need to open it $serial->deviceOpen(); // To write into $serial->sendMessage("AT+CMGF=1\n\r"); $serial->sendMessage("AT+cmgs=\"+92234444444\"\n\r"); $serial->sendMessage("sms text\n\r"); $serial->sendMessage(chr(26)); //wait for modem to send message sleep(7); $read=$serial->readPort(); $serial->deviceClose();
-require "php_serial.class.php"; $serial = new phpSerial; $serial->deviceSet("COM4"); $serial->confBaudRate(115200); // Then we need to open it $serial->deviceOpen(); // To write into $serial->sendMessage("AT+CMGF=1\n\r"); $serial->sendMessage("AT+cmgs=\"+92234444444\"\n\r"); $serial->sendMessage("sms text\n\r"); $serial->sendMessage(chr(26)); //wait for modem to send message sleep(7); $read=$serial->readPort(); $serial->deviceClose();
-require "php_serial.class.php"; $serial = new phpSerial; $serial->deviceSet("COM4"); $serial->confBaudRate(115200); // Then we need to open it $serial->deviceOpen(); // To write into $serial->sendMessage("AT+CMGF=1\n\r"); $serial->sendMessage("AT+cmgs=\"+92234444444\"\n\r"); $serial->sendMessage("sms text\n\r"); $serial->sendMessage(chr(26)); //wait for modem to send message sleep(7); $read=$serial->readPort(); $serial->deviceClose();
-require "php_serial.class.php"; $serial = new phpSerial; $serial->deviceSet("COM4"); $serial->confBaudRate(115200); // Then we need to open it $serial->deviceOpen(); // To write into $serial->sendMessage("AT+CMGF=1\n\r"); $serial->sendMessage("AT+cmgs=\"+92234444444\"\n\r"); $serial->sendMessage("sms text\n\r"); $serial->sendMessage(chr(26)); //wait for modem to send message sleep(7); $read=$serial->readPort(); $serial->deviceClose();
-require "php_serial.class.php"; $serial = new phpSerial; $serial->deviceSet("COM4"); $serial->confBaudRate(115200); // Then we need to open it $serial->deviceOpen(); // To write into $serial->sendMessage("AT+CMGF=1\n\r"); $serial->sendMessage("AT+cmgs=\"+92234444444\"\n\r"); $serial->sendMessage("sms text\n\r"); $serial->sendMessage(chr(26)); //wait for modem to send message sleep(7); $read=$serial->readPort(); $serial->deviceClose();
-require "php_serial.class.php"; $serial = new phpSerial; $serial->deviceSet("COM4"); $serial->confBaudRate(115200); // Then we need to open it $serial->deviceOpen(); // To write into $serial->sendMessage("AT+CMGF=1\n\r"); $serial->sendMessage("AT+cmgs=\"+92234444444\"\n\r"); $serial->sendMessage("sms text\n\r"); $serial->sendMessage(chr(26)); //wait for modem to send message sleep(7); $read=$serial->readPort(); $serial->deviceClose();
Ссылка на PHP SERIAL
Вам просто нужен класс связи RS232, такой как этот http://www.phpclasses.org/package/3679-PHP-Communicate-with-a-serial-port.html
В качестве альтернативы вы также можете использовать fopen ()
exec('mode COM1: baud=115200 data=8 stop=1 parity=n xon=on'); $fd = fopen('COM1:', O_RDWR); fwrite($fd,chr(0).chr(1)); fclose($fd);