2012-05-21 46 views
1

我已經在PHP中創建了自定義腳本,並且正在使用gammu/wammu發送短信,但我無法弄清楚如何在SMS中添加新行字符。如何使用gammu/wammu在短信中添加新行字符

我已經試過

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

但這些都沒有工作。

+1

還要確保您使用的是正確的引號:'「\ r \ n」'vs''\ r \ n''。 – Xeoncross

回答

1

你試過\r\n?它看起來像SMS一樣需要回車和換行。我看過的另一個地方說可以使用%0a%0d,但它似乎是他們的服務而不是一切。我會試一試。無論哪種方式,您需要確保0x0A0x0D(十六進制中的兩個字符)被傳遞給發送SMS的服務。

請參閱here對於我提到的網站%0a%0d,它也有一個SMS字符集的圖表。

0

我不能在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); 

這實際上在發件箱和一個真正的新行存儲的短信罰款到達目的地。真的希望這有助於某人。此代碼從私人內容中刪除,可能無法完全按照顯示的方式工作,但我使用的腳本很有用。

格倫

0

即使這個問題被問很久以前,我以爲我可以將此作爲參考。

通過我的測試,我發現它取決於你使用的引號。使用「(雙引號),而不是單一的,以正確格式化消息,並使用\ n或\ r。

希望這有助於。

乾杯:)

相關問題