PHP でカスタム スクリプトを作成し、gammu/wammu を使用して SMS を送信していますが、SMS に改行文字を追加する方法がわかりません。
私が試してみました
\n
\r
\t
0x0a
0x0d
&10;
しかし、これらのどれも機能しませんでした。
PHP でカスタム スクリプトを作成し、gammu/wammu を使用して SMS を送信していますが、SMS に改行文字を追加する方法がわかりません。
私が試してみました
\n
\r
\t
0x0a
0x0d
&10;
しかし、これらのどれも機能しませんでした。
試しました\r\n
か?SMSにはキャリッジリターンとラインフィードの両方が必要なようです。私が見た別の場所は、使用すると言われましたが%0a%0d
、それはうまくいくかもしれませんが、それはすべてではなく彼らのサービスのようです。でもやってみます。0x0A
いずれにせよ、SMSを送信するサービスにand 0x0D
(16進数で2文字)が渡されることを確認する必要があります。
私が言ったサイトについては、ここを参照してください%0a%0d
。SMS文字セットのチャートもあります。
これを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を送信トレイに保存し、真の改行が宛先に到着します。これが誰かに役立つことを本当に願っています。このコードは非公開のものから削除されており、表示どおりに機能しない可能性がありますが、機能する同様のスクリプトを使用しています。
グレン
この質問は何年も前に尋ねられましたが、これを参照として追加できると思いました。
私のテストを通じて、使用する引用符に依存することがわかりました。メッセージを適切にフォーマットするには、一重引用符ではなく " (二重引用符) を使用し、\n または \r を使用します。
お役に立てれば。
乾杯 :)