首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过Kannel发送短信的Php函数

通过Kannel发送短信的Php函数
EN

Stack Overflow用户
提问于 2011-01-22 23:01:18
回答 6查看 12.2K关注 0票数 2

我现在可以通过kannel发送短信了。但是,这是通过头部完成的,例如:

代码语言:javascript
复制
header("Location:http://localhost:13013/cgi-bin/sendsms?username=xxxx&password=xxxx&to=$in_number&text=$in_msg");  

我想通过php函数发送短信,我在网上得到了下面的代码,但它不起作用。(Kannel smsbox日志没有显示请求):

代码语言:javascript
复制
  function sendSmsMessage($in_number, $in_msg)
 {
 $url = '/cgi-bin/sendsms?username=' . CONFIG_KANNEL_USER_NAME
 . '&password=' . CONFIG_KANNEL_PASSWORD    
 . '&charset=UCS-2&coding=2'
 . "&to={$in_number}"
 . '&text=' . urlencode(iconv('utf-8', 'ucs-2', $in_msg));



$results = file('http://'  
                 . CONFIG_KANNEL_HOST . ':'
                 . CONFIG_KANNEL_PORT . $url);

}

有什么问题吗?我尝试用实际值替换CONFIG_KANNEL_USER_NAME和其他值,但仍然不起作用。欢迎您的建议。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-01-24 21:20:53

我用的是cURL,它100%正常工作。file_get_contents不适用于我,因为我想将变量传递给kannel url,而file_get_contents不处理变量,因为它坚持使用单引号(php将其视为字符串值)而不是双引号(php将解析字符串,检查变量等)。下面是我目前正在做的事情,假设你已经在某个地方初始化了你的变量:

$textmsg="Hello Stackoverflow Users!";

$cellphone_number = "+254xxxxxxx“

$encmsg=urlencode($textmsg);

代码语言:javascript
复制
$ch= curl_init();
curl_setopt($ch, "http://localhost:13013/cgi-bin/sendsms?username=xxxxx&password=xxxxx&to=$cellphone_number&text=$encmsg");
curl_exec($ch);
curl_close($ch);

这将适用于告诉kannel向号码发送短信的简单任务。我花了一段时间才意识到curl不能识别空格和特殊字符:-)。

票数 4
EN

Stack Overflow用户

发布于 2011-07-14 01:57:48

我和来自赞比亚恩多拉的朋友正在使用ubuntu11.04来运行kannel_1.4.3。它以完美的方式发送和接收短信。必须编辑下面的代码才能发送超过70个字符。我和我的朋友努力找出在'&charset=UCS-2&coding=2‘行中有一个小错误。正确的行应该是'&charset=UCS-2&encoding=2‘。因此,代码应该如下所示:

代码语言:javascript
复制
 function sendSmsMessage($in_number, $in_msg)
 {
 $url = '/cgi-bin/sendsms?username=' . CONFIG_KANNEL_USER_NAME
 . '&password=' . CONFIG_KANNEL_PASSWORD    
 . '&charset=UCS-2&encoding=2'
 . "&to={$in_number}"
 . '&text=' . urlencode(iconv('utf-8', 'ucs-2', $in_msg));
票数 1
EN

Stack Overflow用户

发布于 2011-08-12 14:22:53

使用curl:

代码语言:javascript
复制
curl_init("http://$gw_host:$gw_port/cgi-bin/sendsms?username=$gw_user&password=$gw_pass&to=$to&from=$shortcode&smsc=$smsc&dlr-mask=$dlrmask&binfo=$shortcode&text=$message");

将各种变量/参数替换为您的值,例如:

代码语言:javascript
复制
$gw_host=127.0.0.1
$gw_port=13xx3

等。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4768541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档