2016-03-10 94 views
1

所以我有這個功能發送短信,功能很好,但問題是當我發送一個#或一個新的行,功能不能按預期工作!捲曲不起作用#

function sendSMS($phoneNumber,$message){ 
$ch = curl_init(); 

$urll = "http://www....com/api/sendsms.php?username=username&password=pass&message=$message&numbers=$phoneNumber&sender=sender&unicode=E&return=full"; 
    $url = str_replace(' ','%20',$urll); 
// set url 
curl_setopt($ch, CURLOPT_URL, $url); 

//return the transfer as a string 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

// $output contains the output string 
$output = curl_exec($ch); 

// close curl resource to free up system resources 
curl_close($ch); 
} 

,如果我這樣使用它,例如:

sendSMS("phone number","#hashtag"); 

不發送消息,而當我用這樣的:

sendSMS("phone number","some text message"); 

它會發送消息沒有任何問題!

回答

1

您必須urlencode()(docs)您在網址中使用的每個字符串;尤其是你的消息:

$url = "http://www...com/api/sendsms.php?...&message=".urlencode($message)."&numbers=".urlencode($phoneNumber)."&..."; 

這將"%23"更換"#"。您已經通過用"%20"代替代碼來清理代碼中的空間,但這不是URL字符串中唯一的特殊字符。所以不要嘗試手動完成此操作,並讓urlencode()爲您完成此項工作。

+0

工作,謝謝! –