我已經在PHP中創建了自定義腳本,並且正在使用gammu/wammu發送短信,但我無法弄清楚如何在SMS中添加新行字符。如何使用gammu/wammu在短信中添加新行字符
我已經試過
\n
\r
\t
0x0a
0x0d
&10;
但這些都沒有工作。
我已經在PHP中創建了自定義腳本,並且正在使用gammu/wammu發送短信,但我無法弄清楚如何在SMS中添加新行字符。如何使用gammu/wammu在短信中添加新行字符
我已經試過
\n
\r
\t
0x0a
0x0d
&10;
但這些都沒有工作。
你試過\r\n
?它看起來像SMS一樣需要回車和換行。我看過的另一個地方說可以使用%0a%0d
,但它似乎是他們的服務而不是一切。我會試一試。無論哪種方式,您需要確保0x0A
和0x0D
(十六進制中的兩個字符)被傳遞給發送SMS的服務。
請參閱here對於我提到的網站%0a%0d
,它也有一個SMS字符集的圖表。
我不能在gammu-smsd中工作,我真的需要能夠在短信中發送真正的新行字節碼。我搜索了幾天,搜索了gammu代碼庫。我不知道它是在哪裏被捕獲的,但是我不知道如何進入我的sqlite3 gammu-smsd,它不是在另一端出現的新行(machine2machine sms)。
我並不需要一個CR/LF,我只需要發送一個模板,\ n中的變量字符串模板後,在基於SMS的跟蹤
更新使用它,我想出了一個方法,使它發送我想要的。由於我使用的是監務的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。
希望這有助於。
乾杯:)
還要確保您使用的是正確的引號:'「\ r \ n」'vs''\ r \ n''。 – Xeoncross