我使用CURL方法通过网关发送SMS。 但如果我加入这个角色“&”在我的消息文本区域中,它将仅在此字符之前发送消息。
所以我怎么能修复它来正常发送包含这个角色的消息。
这是我的代码:
$from = "Gateway_username"; // SMS username
$token = "Gateway_password"; // SMS password
$option = $_REQUEST["option"];
$text = $_REQUEST["BulkSMS1__messageTextBox"];
if ($text == "") { } else {
$url = "http://awaljawaly.awalservices.com.sa:8001/Send.aspx";
$postfields = array ("REQUESTTYPE" => "SMSSubmitReq",
"Username" => "$from", "Password" => "$token", "MOBILENO" => "$d_mobile", "MESSAGE" => "$text");
if (!$curld = curl_init()) {
echo "Could not initialize cURL session.";
exit;
}
curl_setopt($curld, CURLOPT_POST, true);
curl_setopt($curld, CURLOPT_POSTFIELDS, $postfields);
curl_setopt($curld, CURLOPT_URL, $url);
curl_setopt($curld, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($curld);
curl_close ($curld);
preg_match("/(.*)/",$output, $out);
}
这是一条示例消息:
我们的地址:H& R中心。
提前致谢。
我用这个来解决我的问题:
$text = str_replace('&', '%26', $_REQUEST["BulkSMS1__messageTextBox"]);
答案 0 :(得分:1)
请参阅urlencode() - > http://php.net/manual/en/function.urlencode.php
<?php
$text = urlencode($_REQUEST["BulkSMS1__messageTextBox"]);
?>
答案 1 :(得分:0)
您需要对字符进行编码:
http://www.clockworksms.com/blog/the-gsm-character-set/
有了这个,请尝试使用:
utf8_encode()
原因是你要为移动设备而不是网站编码,所以与utf8编码相比,使用url编码是行不通的。
答案 2 :(得分:0)
我用这个来解决我的问题:
$text = str_replace('&', '%26', $_REQUEST["BulkSMS1__messageTextBox"]);