aws服務php發送sms,aws 雲服務

本文目錄一覽:

Php調用手機發短信功能

移動的接口是什麼風格的?是soap的還是自定義的?

調用自定義接口通常有以下步驟:

1、閱讀接口文檔

2、數據接口一般會提供一些參數。如果是GET接口,請將參數拼接在地址的後面(推薦使用

http_build_query)。如果是POST接口,看我的示例代碼。

3、請求數據

4、解析返回的內容,判斷調用是否成功。一般返回的內容有xml和json格式。

給你一個CURL調用POST接口的例子:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

?php

$ch = curl_init(‘省略接口地址, 防止屏蔽’);

// 以下選項設為true,否則接口返回的內容會直接打印在頁面上

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// 連接超時,一定要設置

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);

// 連接成功後,請求超時,一定要設置

curl_setopt($ch, CURLOPT_TIMEOUT, 5);

// 使用POST請求

curl_setopt($ch, CURLOPT_POST, 1);

// 將參數POST過去, $post_data是你的參數組成的關聯數組

curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);

// 提交請求,得到反饋

$response = curl_exec($ch);

// 解析反饋的內容,略

如果是SOAP風格的,請查閱PHP文檔SoapClient類的用法。因為Soap規範不統一,使用其他語言實現的Soap可能和PHP不兼容。

以前我使用過移動夢網的接口(不是移動的接口),它提供兩種風格的API。它的Soap就和PHP不兼容。所以我選擇了自定義風格的API。

追問:

是webservice接口,有範例嗎?

追答:

這個接口是soap的,人家已經幫你把邏輯封裝了。

注意這個地址是否正確。我這裡是訪問不到的。我覺得你使用他文檔中的實例肯定不會有問題。

追問:

這個我替換成 開放給我的接口 卻還是不行啊!!!

追答:

你要說說是怎麼個不行啊。。是沒響應(空白),還是返回內容有問題,還是報錯?

把出錯信息貼上

追問:

沒響應 返回空白,因為代碼多這裡不夠貼。

追答:

我試了一下,刷出一堆錯誤來。它用的是一個叫nusoap的類。

你嘗試一下PHP內置的SoapClient吧,可以代替它的nusoap。

哪裡可以申請php網站發送短信的接口 ?

如果你發送量不大可以找IDC服務商購買,這些手續比較簡單,找專業哪些需要企業簽約。

$loginname = “”; // 接口帳號

$pass = “”; // 接口密碼

$code = “”;

$subid = “”;

$sender = “”;

$receivers = “”; // 接收號碼,多個號碼間用 ; 分隔

$settimer = “”; // 定時發送時間 格式:YYYY-MM-DD HH:MM

$message = urlencode(“”);

$cmd = “send”;

$allowforward = “”;

$recordid_client = “”; // 短信的客戶端記錄號

$http = “”;

$file = $http.”?loginname=”.$loginname.”pass=”.$pass.”code=”.$code.”subid=”.$subid.”sender=”.$sender.”receivers=”.$receivers.”settimer=”.$settimer.”message=”.$message.”cmd=”.$cmd.”allowforward=”.$allowforward.”recordid_client=”.$recordid_client;

$xml = new XMLReader();

$xml-open($file);

$xml-setParserProperty(2,true);

while ($xml-read()) {

switch ($xml-name) {

case “Success”: $xml-read();

$Success = $xml-value;

$xml-read();

break;

case “Fail”: $xml-read();

$Fail = $xml-value;

$xml-read();

break;

case “RetCode”: $xml-read();

$RetCode = $xml-value;

$xml-read();

break;

case “SmsRemain”: $xml-read();

$SmsRemain = $xml-value;

$xml-read();

break;

case “ErrPhones”: $xml-read();

$ErrPhones = $xml-value;

$xml-read();

break;

}

}

$xml-close();

// $Success 發送成功條數

// $Fail 發送失敗條數

// $RetCode 發送狀態值

// $SmsRemain 接口帳號餘額

// $ErrPhones 發送失敗號碼。

PHP如何定時發送短信

1、首先設置好服務器;

2、設置執行時間為無限制;

3、設置發送短信間隔為5分鐘;

4、打開存儲短信的文件,進行短信操作,關閉文件;

5、循環上面的過程;

6、具體設置代碼如下:

ignore_user_abort(); //即使Client斷開(如關掉瀏覽器),PHP腳本也可以繼續執行. 

set_time_limit(0); // 執行時間為無限制,php默認的執行時間是30秒,通過set_time_limit(0)可以讓程序無限制的執行下去 

$interval=60*5; // 每隔5分鐘運行 

do{ 

$fp = fopen(‘test.txt’,’a’); 

fwrite($fp,’test’); 

fclose($fp); 

sleep($interval); // 等待5分鐘 

}while(true); 

?

PHP+MYSQL 實現隊列 進行發送短信怎麼做

最近遇到一個批量發送短信的需求,短信接口是第三方提供的。剛開始想到,獲取到手機號之後,循環調用接口發送不就可以了嗎?

但很快發現問題:當短信數量很大時,不僅耗時,而且成功率很低。

於是想到,用PHP和MySQL實現一個消息隊列,一條一條的發送短信。下面介紹具體的實現方法:

首先,建立一個數據表sms,包含以下字段:

id,

phone, //手機號

content //短信內容

將需要發送的短信和手機號存入sms表中。

接下來,需要用PHP實現一個定時器,定時讀取一條記錄,並發送短信:

?php

$db = new Db();

$sms = new Sms();

while(true){

$item = $db-getFirstRecord(); //獲取數據表第一條記錄

if(!$item){

//如果隊列中沒有數據,則結束定時器

break;

}

$res = $sms-send($item[‘phone’],$item[‘content’]); //發送短信

if($res){

$db-deleteFristRecord(); //刪除發送成功的記錄

echo $item[‘phone’].’發送成功’;

}else{

echo $item[‘phone’].’發送失敗,稍後繼續嘗試’;

}

sleep(10); //每隔十秒循環一次

}

echo ‘發送完畢!’;

?

將代碼保存為timer_sms.php,打開命令行,執行定時器:

php timer_sms.php

好了,php定時器將會根據設定的時間間隔(這裡設的是10秒),自動完成發送短信的任務。任務完成後將自動退出定時器,不再佔用服務器資源。

根據我的測試,PHP定時器佔用資源並不多,不會對服務器造成壓力。而且是異步訪問數據庫,也不會影響數據庫的運行。

這種方式的優點是:

1、後台運行,前台無需等待

2、成功率高,失敗的記錄會自動重發,直到成功

如何實現php手機短信驗證功能

現在網站在建設網站時為了保證用戶信息的真實性,往往會選擇發短信給用戶手機發驗證碼信息,只有通過驗證的用戶才可以註冊,這樣保證了用戶的聯繫信息資料的100%的準確性 。

第一、實現php手機短信驗證功能的基本思路

1、要找到短信服務提供商,接入短信服務

2、在網站信息提交頁面請求發送信息

3、服務器向短信服務提供商通信,提交發送請求

4、短信服務提供商通過運營商將信息發送到用戶的手機中

二、手機號碼短信驗證前台頁面效果實現

!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”

html xmlns

head

title/title

script src=”js/jquery-1.4a2.min.js” type=”text/javascript”/script

script type=”text/javascript”

/*——————————————-*/

var InterValObj; //timer變量,控制時間

var count = 60; //間隔函數,1秒執行

var curCount;//當前剩餘秒數

var code = “”; //驗證碼

var codeLength = 6;//驗證碼長度

function sendMessage() {

curCount = count;

var dealType; //驗證方式

tel = $(’#tel’).val();

if(tel!=’’){

//驗證手機有效性

var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/;

if(!myreg.test($(’#tel’).val()))

{

alert(’請輸入有效的手機號碼!’);

return false;

}

tel = $(’#tel’).val();

//產生驗證碼

for (var i = 0; i codeLength; i++) {

code += parseInt(Math.random() * 9).toString();

}

//設置button效果,開始計時

$(“#btnSendCode”).attr(“disabled”, “true”);

$(“#btnSendCode”).val(“請在” + curCount + “秒內輸入驗證碼”);

InterValObj = window.setInterval(SetRemainTime, 1000); //啟動計時器,1秒執行一次

//向後台發送處理數據

$.ajax({

type: “POST”, //用POST方式傳輸

dataType: “text”, //數據格式:JSON

url: ’yanzhengma.php’, //目標地址(根據實際地址)

data: “tel=” + tel + “code=” + code,

error: function (XMLHttpRequest, textStatus, errorThrown) { },

success: function (msg){ }

});

}else{

alert(’請填寫手機號碼’);

}

}

//timer處理函數

function SetRemainTime() {

if (curCount == 0) {

window.clearInterval(InterValObj);//停止計時器

$(“#btnSendCode”).removeAttr(“disabled”);//啟用按鈕

$(“#btnSendCode”).val(“重新發送驗證碼”);

code = “”; //清除驗證碼。如果不清除,過時間後,輸入收到的驗證碼依然有效

}

else {

curCount–;

$(“#btnSendCode”).val(“請在” + curCount + “秒內輸入驗證碼”);

}

}

/script

/head

body

input name=”tel” id=tel type=”text” /

input id=”btnSendCode” type=”button” value=”發送驗證碼” onclick=”sendMessage()” //p

/body

/html

第三、調用短信服務器短信接口

整理的頁面是yanzhengma.php(具體根據服務商提供信息)

?php //提交短信

$post_data = array();

$post_data[’userid’] = 短信服務商提供ID;

$post_data[’account’] = ’短信服務商提供用戶名’;

$post_data[’password’] = ’短信服務商提供密碼’;

// Session保存路徑

$sessSavePath = dirname(__FILE__).”/../data/sessions/”;

if(is_writeable($sessSavePath) is_readable($sessSavePath)){

session_save_path($sessSavePath);

}

session_register(’mobliecode’);

$_SESSION[’mobilecode’] = $_POST[“code”];

$content=’短信驗證碼:’.$_POST[“code”].’【短信驗證】’;

$post_data[’content’] = mb_convert_encoding($content,’utf-8’, ’gb2312’); //短信內容需要用urlencode編碼下

$post_data[’mobile’] = $_POST[“tel”];

$post_data[’sendtime’] = ’’; //不定時發送,值為0,定時發送,輸入格式YYYYMMDDHHmmss的日期值

$url=’’;

$o=’’;

foreach ($post_data as $k=$v)

{

$o.=”$k=”.$v.’’;

}

$post_data=substr($o,0,-1);

$ch = curl_init();

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_HEADER, 0);

curl_setopt($ch, CURLOPT_URL,$url);

curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);

//curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //如果需要將結果直接返回到變量里,那加上這句。

$result = curl_exec($ch);

?

第四:提交表單信息時對短信驗證碼驗證

//手機驗證碼開始

session_start();

$svalitel = $_SESSION[’mobilecode’];

$vdcodetel = empty($vdcodetel) ? ’’ : strtolower(trim($vdcodetel));

if(strtolower($vdcodetel)!=$svalitel || $svalitel==’’)

{

ResetVdValue();

//echo “Pageviews=”.$vdcodetel;

ShowMsg(“手機驗證碼錯誤!”, ’-1’);

exit();

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/272032.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-17 00:08
下一篇 2024-12-17 00:08

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若服務器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • PHP登錄頁面代碼實現

    本文將從多個方面詳細闡述如何使用PHP編寫一個簡單的登錄頁面。 1. PHP登錄頁面基本架構 在PHP登錄頁面中,需要包含HTML表單,用戶在表單中輸入賬號密碼等信息,提交表單後服…

    編程 2025-04-27
  • PHP與Python的比較

    本文將會對PHP與Python進行比較和對比分析,包括語法特性、優缺點等方面。幫助讀者更好地理解和使用這兩種語言。 一、語法特性 PHP語法特性: <?php // 簡單的P…

    編程 2025-04-27
  • PHP版本管理工具phpenv詳解

    在PHP項目開發過程中,我們可能需要用到不同版本的PHP環境來試驗不同的功能或避免不同版本的兼容性問題。或者我們需要在同一台服務器上同時運行多個不同版本的PHP語言。但是每次手動安…

    編程 2025-04-24
  • PHP數組去重詳解

    一、array_unique函數 array_unique是php中常用的數組去重函數,它基於值來判斷元素是否重複,具體使用方法如下: $array = array(‘a’, ‘b…

    編程 2025-04-24
  • PHP導出Excel文件

    一、PHP導出Excel文件列寬調整 當我們使用PHP導出Excel文件時,有時需要調整單元格的列寬。可以使用PHPExcel類庫中的setWidth方法來設置單元格的列寬。下面是…

    編程 2025-04-24
  • php擴展庫初探

    一、什麼是php擴展庫? PHP擴展庫(PHP extension)是一些用C語言編寫的動態鏈接庫,用於擴展PHP的功能。PHP擴展庫使得PHP可以與各種數據庫系統相連、SMTP、…

    編程 2025-04-23

發表回復

登錄後才能評論