使用带有unicode消息的PHP API发送SMS

时间:2012-07-28 22:59:41

标签: php string function unicode

我尝试通过RoutoMessaging PHP API发送短信。我读了所有文档和示例我能找到的内容。 他们有PHP示例脚本,用于以unicode格式发送SMS:

<?php  
// include RoutoSMS class  
include("RoutoTelecomSMS.php");  
// creating object  
$sms = new RoutoTelecomSMS;  
// setting login parameters  
$sms->SetUssms->SetOwnNum("44792838383838");  
$sms->SetType("unicode"); 
// get values entered from FORM  
$sms->SetNumber($number);  
$message="04220432043E04580435002004370435043B0435043D04350020043E0
44704380020044104430020043C04380020043F0430043C043504420020043F043E
043C044304420438043B0435002E002E002E"; 
$sms->SetMessage($message);  
// send SMS and print result  
$smsresult = $sms->Send();  
print $smsresult;  
?> 

我不明白的是我如何将文本从提交字符串转换为包含在$ message中所需的代码。 任何人都可以建议函数转换$ message的文本吗? 我目前使用的是PHP 5.3.3版。

1 个答案:

答案 0 :(得分:1)

您发送的邮件是Cryllic文本。它可能在塞尔维亚语中。它显示为“Твојезеленеочисумипаметпомутиле...

解码

header('Content-Type: text/html; charset=utf-8');
$str = "04220432043E04580435002004370435043B0435043D04350020043E044704380020044104430020043C04380020043F0430043C043504420020043F043E043C044304420438043B0435002E002E002E";
foreach(str_split($str, 4) as $char) echo "&#x{$char};";

这就是你对消息进行编码的方式

$string = "Твоје зелене очи су ми памет помутиле...";
$string = mb_convert_encoding($string, 'UCS-2', 'utf8');
for($i =0; $i < strlen($string); $i++)
    echo strtoupper(bin2hex($string[$i]));