我用PHP制作了一个自定义脚本,我使用gammu / wammu发送短信,但我无法弄清楚如何在短信中添加换行符。
我试过了
\n
\r
\t
0x0a
0x0d
&10;
但这些都没有奏效。
你试过\r\n
吗?在我看来,短信需要回车和换行。我看到的另一个地方说使用%0a%0d
,这可能有用,但似乎是他们的服务而不是一切。我试试看。无论哪种方式,您需要确保0x0A
和0x0D
(十六进制中的两个字符)传递给发送SMS的服务。
请参阅here我提到的网站%0a%0d
,它还有一个SMS字符集的图表。
我也无法在gammu-smsd中使用它,我真的需要能够在短信中发送真正的换行字节码。我用谷歌搜索了几天,搜索了gammu代码库。我不知道它是否被困在哪里但是我怎么进入我的sqlite3 gammu-smsd,这不是另一端的新行(machine2machine sms)。
我不需要CR / LF,我只需要在变量字符串模板之后用\ n发送模板,在基于短信的跟踪器中使用它
更新,我想出了一种让它发送我想要的东西的方法。由于我正在使用带有gammu的sqlite3数据库,这个小PHP程序让我将消息发送到移动资产并在那里被接受:
$sms_template=<<<EOD
insert into outbox ( TextDecoded , DestinationNumber, DeliveryReport, CreatorID) values ('%s','%s','yes','auto');
EOD;
$number=1243456;
$terminator=sprintf("%s",chr(10));
$db = new SQLite3("/var/spool/gammu/smsd.sqlite");
$sms='SRV=12171%s';
$sql=sprintf($sms_template, sprintf($sms, $terminator), $number);
$db->exec($sql);
这实际上将短信存储在发件箱中,并且真正的换行符到达目的地。真的希望这有助于某人。此代码从私有内容中删除,可能无法完全按照显示的方式工作,但我使用类似的脚本。
格伦
尽管很久以前就提出过这个问题,但我想我可能会将此作为参考。
通过我的测试,我发现它取决于你使用的报价。使用“(双引号)而不是单引号”来正确格式化消息并使用\ n或\ r。
希望这可以帮助。
干杯:)