蚂蚁分类是一款基于php+mysql的分类信息/地方门户网站建站系统.为在各种服务器上架设分类信息网站提供完美的解决方案。它是免费的和开源的,使用范围非常广泛。本人对该系统还是比较熟悉的,今天我就来分享一下,如何进行二次开发。我以替换短信接口为例,一步一步的手把手教大家开发过程,我们做演示的短信平台是短信宝(http://www.smsbao.com)短信平台,我们公司和短信宝平台合作好几年了,他们的平台非常稳定,而且快速,注册还送免费测试短信,大家可以在短信宝平台注册一个账号,进行测试。
首先,我们先更换后台的显示界面文件。打开模板文件,替换一下模板文件。打开项目/admin/template/sms_setting.tpl.php,替换的代码为14行,代码如下图所示:
echo ">短信宝,点击<a href='http://www.smsbao.com' target='_blank'>免费注册</a></label>" . "\r\n" . '<label for="ihuyi"><input name="sms_service" type="radio" class="radio" id="ihuyi" value="ihuyi" onclick=\'document.getElementById("sms_div").style.display = "";\' ';
经过替换后,所有的显示都变成短信宝短信平台的了。第一步完成。接下来替换发送短信的业务代码。修改项目/include/smsbao/mymps.php文件,代码如下:
<?php
/**
* 发送http请求
* @access protected
* @param string $url 请求地址
* @param string $param get方式请求内容,数组形式,post方式时无效
* * @param string $data post请求方式时的内容,get方式时无效
* @param string $method 请求方式,默认get
*/
function http($url, $param, $data = '', $method = 'GET'){
$opts = array(
CURLOPT_TIMEOUT => 30,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,
);
/* 根据请求类型设置特定参数 */
$opts[CURLOPT_URL] = $url . '?' . http_build_query($param);
if(strtoupper($method) == 'POST'){
$opts[CURLOPT_POST] = 1;
$opts[CURLOPT_POSTFIELDS] = $data;
if(is_string($data)){ //发送JSON数据
$opts[CURLOPT_HTTPHEADER] = array(
'Content-Type: application/json; charset=utf-8',
'Content-Length: ' . strlen($data),
);
}
}
/* 初始化并执行curl请求 */
$ch = curl_init();
curl_setopt_array($ch, $opts);
$data = curl_exec($ch);
$error = curl_error($ch);
curl_close($ch);
//发生错误,抛出异常
if($error) throw new \Exception('请求发生错误:' . $error);
return $data;
}
function msend_sms($sms_user, $sms_pwd, $mobile, $content)
{
$target = 'http://api.smsbao.com/sms';
$post_data['u']=$sms_user;
$post_data['p']=md5($sms_pwd);
$post_data['m']=$mobile;
$post_data['c']=$content;
echo $content;
return $gets = http($target, $post_data);
}
function msend_regsms($sms_user, $sms_pwd, $mobile, $yzm, $sms_regtpl = '')
{
$content = str_replace('{code}', $yzm, $sms_regtpl);
$content = str_replace('{mobile}', $mobile, $content);
$content = ($content ? $content : '您的验证码是:' . $yzm . '。请不要把验证码泄露给其他人。如非本人操作,可不用理会!');
$status = msend_sms($sms_user, $sms_pwd, $mobile, $content);
write_sms_sendrecord($mobile, $content, $status, 'smsbao');
}
function msend_pwdsms($sms_user, $sms_pwd, $mobile, $yzm, $sms_pwdtpl = '')
{
$content = str_replace('{code}', $yzm, $sms_pwdtpl);
$content = str_replace('{mobile}', $mobile, $content);
$content = ($content ? $content : '您的手机号:' . $mobile . ',找回密码验证码:' . $yzm . ',请不要把验证码泄露给其他人。如非本人操作,可不用理会!');
$status = msend_sms($sms_user, $sms_pwd, $mobile, $content);
write_sms_sendrecord($mobile, $content, $status, 'smsbao');
}
?>
好了,经过以上的替换,短信宝的短信平台已经替换成功了,可以正常使用了。
报备一下短信宝的VIP模板,这样就可以走短信宝的优质通道了,并且免审核了,短信内容3~5秒就可送达。