我现在可以通过kannel发送短信了。但是,这是通过头部完成的,例如:
header("Location:http://localhost:13013/cgi-bin/sendsms?username=xxxx&password=xxxx&to=$in_number&text=$in_msg"); 我想通过php函数发送短信,我在网上得到了下面的代码,但它不起作用。(Kannel smsbox日志没有显示请求):
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和其他值,但仍然不起作用。欢迎您的建议。
发布于 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);
$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不能识别空格和特殊字符:-)。
发布于 2011-07-14 01:57:48
我和来自赞比亚恩多拉的朋友正在使用ubuntu11.04来运行kannel_1.4.3。它以完美的方式发送和接收短信。必须编辑下面的代码才能发送超过70个字符。我和我的朋友努力找出在'&charset=UCS-2&coding=2‘行中有一个小错误。正确的行应该是'&charset=UCS-2&encoding=2‘。因此,代码应该如下所示:
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));发布于 2011-08-12 14:22:53
使用curl:
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");将各种变量/参数替换为您的值,例如:
$gw_host=127.0.0.1
$gw_port=13xx3等。
https://stackoverflow.com/questions/4768541
复制相似问题