下面是我的代码,经过整夜的搜索和工作后,我终于想出了如何让它发送短信。问题是我不能在正文消息中留空格,也不会显示$smsmessage
的值。
extract($_POST);
$smsmessage1 = "This is the sms that will be sent";
$smsmessage = urlencode($smsmessage1);
//set POST variables
$url = 'http://www.mysmsgateway.com/bulksms/bulksms.php?username=myemail@domain.com&password=123456789&message=$smsmessage&mobile=2348035081907&sender=Boss';
$fields = array();
//url-ify the data for the POST
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string,'&');
//open connection
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);
//execute post
$result = curl_exec($ch);
//close connection
curl_close($ch);
上述代码会发送消息,但会输出$smsmessage
,而不是从上方获取$smsmessage
的值。
答案 0 :(得分:6)
您使用单引号指定$url
,这意味着$smsmessage
将不会被解释。
您需要使用双引号:
$url = "http://www.mysmsgateway.com/bulksms/bulksms.php?username=myemail@domain.com&password=123456789&message=$smsmessage&mobile=2348035081907&sender=Boss";
有关两者之间差异的更多信息,请参阅PHP手册中的PHP: Strings。
答案 1 :(得分:0)
单引号内的变量不会在php中评估,将它们放在双引号中。像
//set POST variables
$url = "http://www.mysmsgateway.com/bulksms/bulksms.php?username=myemail@domain.com&password=123456789&message=$smsmessage&mobile=2348035081907&sender=Boss"
答案 2 :(得分:0)
您使用单引号而不是双引号。只有双引号会为您解析变量。所以不要输入:
$url = 'http://www.mysmsgateway.com/bulksms/bulksms.php?username=myemail@domain.com&password=123456789&message=$smsmessage&mobile=2348035081907&sender=Boss';
尝试使用双引号并输入:
$url = "http://www.mysmsgateway.com/bulksms/bulksms.php?username=myemail@domain.com&password=123456789&message=$smsmessage&mobile=2348035081907&sender=Boss";