资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

php如何短信发送数据 php如何短信发送数据到邮箱

PHP+MYSQL 实现队列 进行发送短信怎么做

最近遇到一个批量发送短信的需求,短信接口是第三方提供的。刚开始想到,获取到手机号之后,循环调用接口发送不就可以了吗?

成都创新互联公司2013年至今,是专业互联网技术服务公司,拥有项目网站制作、做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元宁安做网站,已为上家服务,为宁安各地企业和个人服务,联系电话:028-86922220

但很快发现问题:当短信数量很大时,不仅耗时,而且成功率很低。

于是想到,用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怎么发送短信呢 以及我发送返回是成功为什么还收不到

短信发送都是使用第三方的api进行操作的,按照第三方的api进行php代码的编写。有时候未收到是因为短信提供商那边有延迟,或者短信内容太随便被认作是垃圾短信了

用PHP写一个接口,随机生成6位数字,然后以短信的形式发送到对应的手机号上。从来没写过接口不知道如何写

短信接口需要你有对应的短信服务商才行,通常是第三方短信服务商,这种服务往往是收费的,收取的费用越多,每天可以发送的短信数量越多。

你需要向他们申请短信接口,申请成功后会有接口文档,按照文档中的规定发送相应的数据即可,通常发送的数据包含:需要发送短信的手机号、短信内容。

接口写法通常会在文档中有写,甚至有的文档会附带范例以供开发者参考。

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怎么发送手机短信?

我已经申请成为移动SP。 移动给我以下资料: 企业代码: 服务代码: 短信网关IP地址: 登陆用户名: 密码: 下行端口: 上行端口: 协议:见附件 请问我怎么用PHP写往手机发短信的代码?

php如何调用api接口,主要是php调用联通,移动api进行短信的发送?

你没法调移动。联通api的,如果要进行短信发送,可以去找短信接口,一般去运营商购买,然后他们提供api。然后用php对接即可,很简单,比如下面使用的就是某家的api发送:

$this-content = “发送内容”;

$this-name = "短信账号";

$this-pwd= "短信密码";

$this-mobile = "发送的手机号";

$argv = array(

'name'=$this-name, //必填参数。用户账号

'pwd'=$this-pwd, //必填参数。(web平台:基本资料中的接口密码)

'content'=$this-content, //必填参数。发送内容(1-500 个汉字)UTF-8编码

'mobile'=$this-mobile, //必填参数。手机号码。多个以英文逗号隔开

'stime'='', //可选参数。发送时间,填写时已填写的时间发送,不填时为当前时间发送

'sign'=$this-sign, //必填参数。用户签名。

'type'=$this-type, //必填参数。固定值 pt

'extno'=$this-extno //可选参数,扩展码,用户定义扩展码,只能为数字

);

//构造要post的字符串

foreach ($argv as $key=$value) {

if ($flag!=0) {

$params .= "";

$flag = 1;

}

$params.= $key."=";

$params.= urlencode($value);

$flag = 1;

}

$url = "?".$params; //提交的url

$resultUrl = file_get_contents($url);//获取发送状态


新闻标题:php如何短信发送数据 php如何短信发送数据到邮箱
文章起源:http://cdkjz.cn/article/doohjcj.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220