1

PHP でカスタム スクリプトを作成し、gammu/wammu を使用して SMS を送信していますが、SMS に改行文字を追加する方法がわかりません。

私が試してみました

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

しかし、これらのどれも機能しませんでした。

4

4 に答える 4

1

試しました\r\nか?SMSにはキャリッジリターンとラインフィードの両方が必要なようです。私が見た別の場所は、使用すると言われましたが%0a%0d、それはうまくいくかもしれませんが、それはすべてではなく彼らのサービスのようです。でもやってみます。0x0Aいずれにせよ、SMSを送信するサービスにand 0x0D(16進数で2文字)が渡されることを確認する必要があります。

私が言ったサイトについては、ここを参照してください%0a%0d。SMS文字セットのチャートもあります。

于 2012-05-21T18:16:37.783 に答える
0

これをgammu-smsdでも機能させることはできません。SMSでも真の改行バイトコードを送信できるようにする必要があります。私は何日もグーグルで検索し、gammu コードベースを検索しました。トラップされているかどうか/どこにあるかはわかりませんが、sqlite3 gammu-smsd にどのように入力しても、反対側に出てくるのは改行ではありません (machine2machine sms)。

CR/LF は必要ありません。可変文字列テンプレートの後に \n を含むテンプレートを送信し、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);

それは実際にSMSを送信トレイに保存し、真の改行が宛先に到着します。これが誰かに役立つことを本当に願っています。このコードは非公開のものから削除されており、表示どおりに機能しない可能性がありますが、機能する同様のスクリプトを使用しています。

グレン

于 2012-05-25T14:32:09.053 に答える
0

この質問は何年も前に尋ねられましたが、これを参照として追加できると思いました。

私のテストを通じて、使用する引用符に依存することがわかりました。メッセージを適切にフォーマットするには、一重引用符ではなく " (二重引用符) を使用し、\n または \r を使用します。

お役に立てれば。

乾杯 :)

于 2014-04-08T14:44:00.750 に答える