当前位置:首页 » 编程语言 » php发信

php发信

发布时间: 2025-06-21 16:21:19

1. 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、成功率高,失败的记录会自动重发,直到成功

2. php中信息发布成功跳出JS提示框代码

PHP 弹出JS 提示框示例代码:

<?php
header("Content-type:text/html;charset=utf-8;");
$conn=mysql_connect("localhost","root","root");
if(!$conn){
die("数据库连接出错。".mysql_error());
}
mysql_select_db("test");
$sql="insertintotable(id,name)values(1,'chinawinxp')";
$int=mysql_query($sql);
//信息添加或者发布成功
if($int){
$msg="信息发布成功!";
echo("<scripttype='text/javascript'>");
echo("alert('{$msg}');");
//url跳转
echo("location.href='test.php';");
echo("</script>");
}
?>

运行效果:

3. 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 = "http://xxxxxxx.com?".$params; //提交的url
$resultUrl = file_get_contents($url);//获取发送状态

4. 请问一下,PHP配置SMTP怎么弄

PHPMailer的获取:

PHPMailer项目地址:PHPMailer 使用git命令克隆到本地,或直接在该项目页面的右下方点击“ Download ZIP ”即可获取到完整的PHPMailer代码包,再到本地解压即可。

步骤一:使我们的QQ邮箱能够发送邮件

这里怎么说能够发送邮件呢?其实我们的邮箱都是可以发送邮件的,但是要实现在我们的网站中发送邮件,那就要设置一下我们的QQ邮箱了,因为此时我们的网站现在是作为一个第三方客户端存在的。

步骤一:使我们的QQ邮箱能够发送邮件

这里怎么说能够发送邮件呢?其实我们的邮箱都是可以发送邮件的,但是要实现在我们的网站中发送邮件,那就要设置一下我们的QQ邮箱了,因为此时我们的网站现在是作为一个第三方客户端存在的

  • 由于待会我们用到的是SMTP服务器来发送,在这里建议把前面的两项开启了!当你点击开启的时候,它会提示:

  • <?phprequire_once("./functions.php");$flag=sendMail('[email protected]','lsgo在线通知','恭喜你成功加入LSGO实验室,开启你的学习之旅吧!');if($flag){echo"发送邮件成功!";
    }else{echo"发送邮件失败!";
    }?>

    5. 我有移动提供的短信接口,请问怎么用php调用这些接口发送短信呢

    移动的接口是什么风格的?是soap的还是自定义的?

    调用自定义接口通常有以下步骤:

    1、阅读接口文档

    2、数据接口一般会提供一些参数。如果是GET接口,请将参数拼接在地址的后面(推荐使用

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

    3、请求数据

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


    给你一个CURL调用POST接口的例子:

    <?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。

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

    他会提供相应接口给你的,具体调用方法就相当于讲求某个链接。

    如:
    http://localhost/operate.php?act=get_user_list&type=json

    在这里operate.php相当于一个接口,其中get_user_list 是一个API(获取用户列表),讲求返回的数据类型为JSON格式。

    你只需要在你PHP代码中执行这条链接他就会返回。
    GET方式的直接使用
    $file_contents = file_get_content('http://localhost/operate.php?act=get_user_list&type=json')

    POST方式得用下面的(需要开启PHP curl支持)。
    $url = 'http://localhost/operate.php?act=get_user_list&type=json';
    $ch = curl_init ();
    curl_setopt ( $ch, CURLOPT_URL, $url );
    curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
    curl_setopt ( $ch, CURLOPT_CONNECTTIMEOUT, 10 );
    curl_setopt ( $ch, CURLOPT_POST, 1 ); //启用POST提交
    $file_contents = curl_exec ( $ch );
    curl_close ( $ch );

热点内容
执行php代码 发布:2025-06-21 19:25:00 浏览:344
搭建方舟游戏服务器 发布:2025-06-21 19:22:08 浏览:809
android电池 发布:2025-06-21 19:12:17 浏览:171
小米max支持存储卡扩展吗 发布:2025-06-21 19:12:16 浏览:60
access数据库存储图片 发布:2025-06-21 19:09:10 浏览:507
查看python版本命令 发布:2025-06-21 19:01:14 浏览:402
如何配置使用udp传输 发布:2025-06-21 18:57:42 浏览:536
f盘无法访问拒绝访问 发布:2025-06-21 18:57:33 浏览:340
数据库和服务器的关系 发布:2025-06-21 18:45:01 浏览:168
java中sleep 发布:2025-06-21 18:44:27 浏览:583