SMS短信问题。

我们是在一家SP提供者的支持下开展短信业务。他们分配给我了调用的url,可是如何编写一个高效率的短信群发脚本呢?PHP又不能产生没有线程,如果使用循环来发送短信是不是很慢? 调用url的时候用什么函数更快?? 需要用其他语言来开发吗?

请大侠们指教。分如果不够,可以再加。
---------------------------------------------------------------

短信群发只能用循环,不会很慢的。
调用url,这句话不懂是什么意思…
---------------------------------------------------------------

如果你要群发的话,最好使用其他语言做ISAPI或者CGI程序
---------------------------------------------------------------

看情况,你的那家SP提供的发送短信接口是HTTP协议的。

那用fsockopen()发送HTTP请求就是了。。。。

相关的方法在网上都可以查到。很简单的。
---------------------------------------------------------------

如果接口,返回不是太复杂,可以直接使用fopen

$url=http://sms.com/sms.php?send=13913911111&text=sms
$fp=fopen($url,"rb")
if ($fp)
... // 可读出结果,一般只要成功打开,就能发送吧
echo "成功";

--------------------------------------------------------------------
楼上疯宝宝和点点心缘都说得对。只是打开socket往里面写数据时需要看看http协议,要自己写http请求。 不复杂。
function _SplitURL($URL)//要求输入为www.csdn.net/exper/xx格式。不能前面加"http://",用一个正则表达式,我写不出来.
{
$Web["Host"] = "";
$Web["File"] = "";
preg_match("/[^/]+/i", $URL, $Matches);
$Web["Host"] = $Matches[0];
$Web["File"] = str_replace($Web["Host"], "", $URL);
return $Web;
}

function _GetData($URL, $GetData, $Port = 80)//往接口发数据的函数
{
$Web = _SplitURL($URL);
$fp = fsockopen ($Web["Host"], $Port, $ErrNo, $ErrStr, 30);
if (!$fp)
{
//$Err["ErrNo"] = $ErrorNo;
//$Err["ErrStr"] = $ErrStr;
return false;
}
else
{
$Web["File"] .= "?";

for(reset($GetData); $Key = key($GetData); next($GetData))
$Web["File"] .= $Key."=".$GetData[$Key]."&";

$Web["File"] = substr($Web["File"], 0, -1);
$Data = "GET ".$Web["File"]." HTTP/1.0\r\nHost: ".$Web["Host"]."\r\n\r\n";

fputs($fp, $Data);

while (!feof($fp))
{
$Result = (fgets($fp,128));
$Result = _GetReturn($Result);
if ($Result > 0)
return false;
}
fclose ($fp);
}
}

具体使用:接口参数具体看短信服务提供商
$Params["service"] = $Service;
$Params["rcv"] = $Mobile;
$Params["fee"] = $Mobile;
$Params["snd"] = $SndNo; //
$Params["msg"] = $Msg;
_GetData("www.my5757.com/e21cn/sendMt.jsp", $Params);

Published At
Categories with Web编程
Tagged with
comments powered by Disqus