如何使用gammu / wammu在短信中添加新行字符

问题描述 投票:1回答:3

我用PHP制作了一个自定义脚本,我使用gammu / wammu发送短信,但我无法弄清楚如何在短信中添加换行符。

我试过了

  • \n
  • \r
  • \t
  • 0x0a
  • 0x0d
  • &10;

但这些都没有奏效。

php sms sms-gateway gammu
3个回答
1
投票

你试过\r\n吗?在我看来,短信需要回车和换行。我看到的另一个地方说使用%0a%0d,这可能有用,但似乎是他们的服务而不是一切。我试试看。无论哪种方式,您需要确保0x0A0x0D(十六进制中的两个字符)传递给发送SMS的服务。

请参阅here我提到的网站%0a%0d,它还有一个SMS字符集的图表。


0
投票

我也无法在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);

这实际上将短信存储在发件箱中,并且真正的换行符到达目的地。真的希望这有助于某人。此代码从私有内容中删除,可能无法完全按照显示的方式工作,但我使用类似的脚本。

格伦


0
投票

尽管很久以前就提出过这个问题,但我想我可能会将此作为参考。

通过我的测试,我发现它取决于你使用的报价。使用“(双引号)而不是单引号”来正确格式化消息并使用\ n或\ r。

希望这可以帮助。

干杯:)

© www.soinside.com 2019 - 2024. All rights reserved.