我已经在PHP中制作了一个自定义脚本,并且正在使用gammu/wammu发送短信,但是我无法弄清楚如何在SMS中添加新行字符。
我试过了
-
'n
-
'r
-
't
-
0x0a
-
0x0d
-
&10;
但这些都没有奏效。
你试过'r'n
吗?在我看来,SMS 需要回车和换行。我看过的另一个地方说使用 %0a%0d
,这可能有效,但这似乎是他们的服务而不是一切。不过我会试一试。无论哪种方式,您都需要确保将0x0A
和0x0D
(十六进制中的两个字符(传递给发送 SMS 的服务。
请参阅此处以获取我提到的站点 %0a%0d
,它还有一个 SMS 字符集的图表。
我也无法让它在 gammu-smsd 中工作,我真的需要能够在短信中发送真正的换行字节码。 我已经用谷歌搜索了好几天,搜索了 gammu 代码库。我无法判断它是否/在哪里被困住,但无论我如何进入我的 sqlite3 gammu-smsd,它都不是另一端出现的换行符(machine2machine sms(。
我不需要 CR/LF,我只需要在变量字符串模板之后发送一个带有 ' 的模板,在基于 SMS 的跟踪器中使用它
更新,我想出一种方法让它发送我想要的东西。 由于我使用的是带有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);
这实际上将短信很好地存储在发件箱中,并且真正的换行符到达目的地。 真的希望这对某人有所帮助。 这段代码是从私人内容中剥离的,可能无法完全按照显示的方式工作,但我使用了一个类似的脚本。
格伦
尽管这个问题很久以前就被问过了,但我想我可以添加它作为参考。
通过我的测试,我发现这取决于您使用的引号。使用 "(双引号(而不是单引号,以便正确设置消息格式并使用 ' 或 ''r。
希望这有帮助。
干杯:)
也许很晚才得到答案,但作为对我完全有用的参考:
echo -e "Hello'nWorld" | gammu ....