使用PHP发送短信

以下示例PHP脚本sendsms.php可用于通过带有PHP的NowSMS发送SMS文本消息。该脚本也可以从以下位置下载 http://www.zgbianpofanghuwang.com/download/sendsms-php.txt.

SendSMS功能是该示例的重要部分。这是需要包含在PHP脚本中的函数。您调用此函数,并指定NowSMS服务器的基本URL以及用户名和密码。 “SMS Users” NowSMS服务器上的帐户,以及收件人的电话号码和SMS消息的文本。

SendSMS函数使用这些参数来构建HTTP POST以连接到NowSMS服务器。

支持其他可选参数。有关NowSMS URL参数的其他信息,请参阅 http://www.zgbianpofanghuwang.com/doc/submitting-sms-messages/url-parameters.

在SendSMS函数之后,我们展示了两个示例,说明如何从PHP脚本中调用此函数。第一个示例发送仅包含必需参数的SMS文本消息。第二个示例包括一个额外的可选参数,以说明如何对这些参数进行编码。

//此代码提供了一个示例,说明如何从内部调用SendSMS函数

//一个用于发送消息的PHP脚本。 

 

SendSMS('//sample.smshosts.com/', 'username', 'password', '+44999999999', 'Test Message');

 

//此示例添加了另一个URL参数ReceiptRequested = Yes

SendSMS('//sample.smshosts.com/', 'username', 'password', '+44999999999', 'Test Message with delivery report', 'ReceiptRequested', 'Yes');

可以从以下链接下载以下详细描述的脚本: http://www.zgbianpofanghuwang.com/download/sendsms-php.txt.

 

<?php

 

function SendSMS ($hostUrl, $username, $password, $ phoneNoRecip, $ msgText,

                  $n1 = NULL, $v1 = NULL, $n2 = NULL, $v2 = NULL, $n3 = NULL, $v3 = NULL, 

                  $n4 = NULL, $v4 = NULL, $n5 = NULL, $v5 = NULL, $n6 = NULL, $v6 = NULL, 

                  $n7 = NULL, $v7 = NULL, $n8 = NULL, $v8 = NULL, $n9 = NULL, $v9 = NULL  ) { 

 

//参数:

//  $hostUrl – URL of the NowSMS server (e.g., http://127.0.0.1:8800 or

//             //sample.smshosts.com/

// $ username – NowSMS服务器上的“ SMS用户”帐户

// $ password –为NowSMS服务器上的“ SMS用户”帐户定义的密码

// $ phoneNoRecip –一个或多个电话号码(以逗号分隔)以接收消息

//  $ msgText – Text of the message

// $ n1- $ n9 / $ v1- $ v9-其他可选的URL参数,编码为名称/值对

//示例:charset = iso-8859-1编码为“ charset”,“ iso-8859-1”

 

   $postfields = array('Phone'=>"$ phoneNoRecip", 'Text'=>"$ msgText");

   if (($n1 != NULL) && ($v1 != NULL)) $postfields[$n1] = $v1;

   if (($n2 != NULL) && ($v2 != NULL)) $postfields[$n2] = $v2;

   if (($n3 != NULL) && ($v3 != NULL)) $postfields[$n3] = $v3;

   if (($n4 != NULL) && ($v4 != NULL)) $postfields[$n4] = $v4;

   if (($n5 != NULL) && ($v5 != NULL)) $postfields[$n5] = $v5;

   if (($n6 != NULL) && ($v6 != NULL)) $postfields[$n6] = $v6;

   if (($n7 != NULL) && ($v7 != NULL)) $postfields[$n7] = $v7;

   if (($n8 != NULL) && ($v8 != NULL)) $postfields[$n8] = $v8;

   if (($n9 != NULL) && ($v9 != NULL)) $postfields[$n9] = $v9;

   $ch = curl_init();

   curl_setopt($ch, CURLOPT_URL, $hostUrl);

   curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

   curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

   curl_setopt($ch, CURLOPT_POST, 1);

   curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);

// TODO:此脚本当前不验证SSL证书

// curl_setopt($ ch,CURLOPT_VERBOSE,true);

// curl_setopt($ ch,CURLOPT_SSL_VERIFYPEER,true);

// curl_setopt($ ch,CURLOPT_CAINFO,'cacert.pem');

   curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); // change to 1 to verify cert

   curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);

   curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");

   curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:')); 

   $result = curl_exec($ch);

 

   return $result;

 

}

 

 

//此代码提供了一个示例,说明如何从内部调用SendSMS函数

//一个用于发送消息的PHP脚本。 

// NowSMS服务器的响应从脚本中回显。

 

$x   = SendSMS('//sample.smshosts.com/', 'username', 'password', '+44999999999', 'Test Message');

echo $x;

 

//此示例添加了另一个URL参数ReceiptRequested = Yes

$x   = SendSMS('//sample.smshosts.com/', 'username', 'password', '+44999999999', 'Test Message with delivery report', 'ReceiptRequested', 'Yes');

echo $x;

 

?>