向PHP脚本发送和接收短信?

11

一个可以与MySQL数据库一起使用的PHP脚本是否可以使用某种服务器端解决方案发送或接收短信?

需要特殊的服务器端应用程序或特殊硬件吗? 兼容性如何? Windows,Linux?


你可以提供一下你所在的国家吗?我知道在德国发送短信有一些问题,而接收则更为困难。 - guerda
4个回答

7

有很多像Esendex这样的公司提供用于发送/接收短信消息的API。但我不确定您是否想要直接从您的硬件发送它们?


谢谢,这正是我想要的。他们的七天免信用卡试用听起来很不错! - Robin Rodricks
我已经使用它们几年了,用于收发短信,感觉还不错。我只使用过他们的 .net API,但是他们似乎提供了很多语言的示例代码。 - Steven Robbins

1

发送短信:

  1. 您的服务器应该安装CURL。 (或者您可以使用php_file_get_contents函数,但我建议使用CURL)
  2. 来自短信网关服务器提供商的SMS API。

这是一个使用CURL发送短信的简单函数:

function CURLsendsms($number, $message_body){
 $api_params = $api_element.'?apikey='.$apikey.'&sender='.$sender.'&to='.$mobileno.'&message='.$textmessage;
 $smsGatewayUrl = "http://springedge.com";
 $smsgatewaydata = $smsGatewayUrl.$api_params;
 $ch = curl_init();
 curl_setopt($ch, CURLOPT_POST, false);
 curl_setopt($ch, CURLOPT_URL, smsgatewaydata);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 $output = curl_exec($ch);
 curl_close($ch);
 // Use file get contents when CURL is not installed on server.
 if(!$output){
 $output =  file_get_contents($smsgatewaydata);  
 }
}

此外,您可以使用php类发送短信http://www.phpclasses.org/package/9522-PHP-Send-SMS-messages-with-Spring-Edge-API.html

以上类中有两个文件:sendsms.php - 调用短信网关restAPI的类文件 test.php - 用于测试短信功能的示例文件。该类使用Spring Edge 短信网关提供商API

接收短信:

您需要购买一个虚拟号码,这可以是10位数字的虚拟移动号码或短代码号码。

虚拟号码可以配置一个HTTP URL,其中包含查询字符串参数

例如:example.com/receivesms.php?from=%number%&smstext=%text%

所有接收到的消息都将触发到配置的URL,因此您可以根据需要在脚本中进一步处理它(例如将回复存储到数据库中或发送文本消息作为响应)。

虚拟移动号码(双向短信号码)可以与任何短信服务提供商配置


1

您可以使用USB转GSM调制解调器从PHP或任何其他语言发送短信,或者您可以在手机上开发J2EE程序来完成同样的事情(这是更加hackier的方法)。

最便宜的方法(至少我是这么做的)是购买一款价格为50美元的MultiTech GSM模块,安装一个带有无限文本的GSM卡,并使用串行端口进行通信,非常简单的命令允许您发送文本,而模块则完成所有协议连接等操作...

基本上,您最终会使用AT命令(它们因调制解调器而异),但它们类似于AT#T /“555031231”示例文本消息//

当然,选择GSM芯片的缺点是您实际上必须做一些电子工作,如果您选择高端GSM调制解调器,则所有问题都已经解决,您只需即插即用!


1
如果您在英国,txtlocal是一个不错的选择。他们的网站上已经有示例代码可以让您快速上手。非常简单,使用curl函数。

http://www.txtlocal.co.uk/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接