php微信高级接口群发 多客服
本文实例为大家分享了php微信高级接口群发、多客服源码,供大家参考,具体内容如下
/**
*微信接口调用
*依赖
*全局变量
*global$uid公众号用户id,$wid公众号id,$wechatid粉丝唯一id;
*参数
*$postStr=$GLOBALS["HTTP_RAW_POST_DATA"];
*$postObj=simplexml_load_string($postStr,'SimpleXMLElement',LIBXML_NOCDATA);
*缓存类自定义
*Cache:set
*Cache:get
*具体业务修改
*1.上传图文信息至微信素材库
*functionuploadArticlesToWeiXinServer()
*2.关键字匹配图文回复
*functiongetArticleData()
*
*usage:
*$options=array(
*'token'=>'tokenaccesskey',//填写你设定的key
*'appid'=>'wxdk1234567890',//填写高级调用功能的appid
*'appsecret'=>'xxxxxxxxxxxxxxxxxxx',//填写高级调用功能的密钥
*);
*/
classWeiXinTool{
private$appid;
private$appsecret;
private$access_token;
private$mediaType=array('image'=>array("jpg"),'voice'=>array('amr','MP3'),'video'=>array('mp4'),'thumb'=>array("jpg"));
private$mediaMaxSize=array('image'=>131072,'voice'=>262144,'video'=>1048576,'thumb'=>65536);
private$tem_file_path="";
//授权地址
constAUTH_URL='https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s';
//素材上传
constUPLOAD_MEDIA_URL="http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token=%s&type=%s";
constGET_MEDIA_URL="http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=%s&media_id=%s";
constUPLOAD_NEWS_URL="https://api.weixin.qq.com/cgi-bin/media/uploadnews?access_token=%s";
publicfunction__construct($options){
$this->appid=isset($options['appid'])?$options['appid']:'';
$this->appsecret=isset($options['appsecret'])?$options['appsecret']:'';
//需修改
//上传图片临时文件目录自定义
$this->tem_file_path=YYUC_FRAME_PATH.YYUC_PUB.'/'.Session::get('upath');
}
/**
*需修改
*具体业务需求,图文信息上传至素材库
*微站文章上传至微信素材
*@paramtype$wid
*@paramtype$aid
*@returnint
*/
publicfunctionuploadArticlesToWeiXinServer($wid,$aid){
//具体图文组装过程,需修改
$m=newModel('website_article');
$m_pubs=newModel('pubs');
$m_pubs->find(array("id"=>$wid));
$m->find(array("wid"=>$wid,'id'=>$aid));
$res=array();
if($m->has_id()&&$m_pubs->has_id()){
$res[]=$m->get_model_array();
//var_dump($res);
$m->votetouser=json_decode($m->votetouser,TRUE);
$articles=$m->votetouser[0];
$m_article=newModel('website_article');
$ress=$m_article->where(array('wid'=>$wid,'id'=>$articles))->list_all_array();
$res=array_merge($res,$ress);
}else{
$errarr=array();
$errarr['errcode']=44003;
$errarr['errmsg']=self::$errorno[$errarr['errcode']];
return$errarr;
}
$items=array();
foreach($resas$k=>$v){
$mediaid=$this->uploadMedia($v['picurl']);
if($mediaid['media_id']){
$thumb_media_id=$mediaid['media_id'];
}else{
return$mediaid;
}
$item=array(
"thumb_media_id"=>$thumb_media_id,
"author"=>$m_pubs->pubun,
"title"=>$v['title'],
"content_source_url"=>WeiXinTool::complateUrl(WeiSite::parseArticleLinkData($v)),
"content"=>$v['reply_content'],//内容富文本
"digest"=>$v['description']//描述
);
$items[]=$item;
}
//以上具体图文组装过程,需修改
$postData['articles']=$items;
$error=$this->uploadNews($postData);
return$error;
}
/**
*需修改
*微站文章关键字匹配数据解析
*/
publicstaticfunctiongetArticleData($keyword){
global$wid;
$m=newModel('website_article');
$m->find(array('wid'=>$wid,'keyword@~'=>"".$keyword.""));
$res=array();
if($m->has_id()){
$res[]=array("tit"=>$m->title,"pic"=>$m->picurl,"dec"=>$m->description,"url"=>WeiSite::parseArticleLinkData($m->get_model_array()));
$m->votetouser=json_decode($m->votetouser,TRUE);
$articles=$m->votetouser[0];
if(!empty($articles)){
foreach($articlesas$v){
$m_article=newModel('website_article');
$m_article->find(array('wid'=>$wid,'id'=>$v));
$res[]=array("tit"=>$m_article->title,"pic"=>$m_article->picurl,"dec"=>$m_article->description,"url"=>WeiSite::parseArticleLinkData($m_article->get_model_array()));
}
}
return$res;
}
}
/**
*获取accesstoken
*@paramtype$flag强制刷新accesstoken开关
*@returntype
*/
publicfunctiongetAccessToken($flag=FALSE){
$url=sprintf(self::AUTH_URL,$this->appid,$this->appsecret);
$result=Cache::get(md5($url));
if($flag||empty($result)){
$result=$this->http_get($url);
$result=json_decode($result,TRUE);
if($result['errcode']){
return$result['errcode'];
}
Cache::set(md5($url),$result,1);
}
$this->access_token=$result['access_token'];
returntrue;
}
/**
*上传媒体
*@paramtype$file媒体文件$url或者物理路径地址
*@paramtype$type类型
*@returnint
*return
array(size=3)
'type'=>string'image'(length=5)
'media_id'=>string'-0Lr3rX9mDYBB7i5bDydvwFHHm3zW2Uxt0OoDFBPmGRfYiwckiALqHH_DlP9jCm_'(length=64)
'created_at'=>int1400477181
*/
publicfunctionuploadMedia($file,$type="image"){
$file=self::complateUrl($file);
$urlarr=parse_url($file);
$filetype=explode(".",$urlarr['path']);
$filetype=strtolower($filetype[count($filetype)-1]);
$resizeSize=100;//图片处理后另存质量
if(!key_exists($type,$this->mediaType)||!in_array($filetype,$this->mediaType[$type])){
//return40005;//格式错误
$errarr=array();
$errarr['errcode']=40005;
$errarr['errmsg']=self::$errorno[$errarr['errcode']];
return$errarr;
}
$temp_file=$this->tem_file_path.'uploadMedia.'.$filetype;
$temp_file_resize=$this->tem_file_path.'uploadMediaResize.'.$filetype;
file_put_contents($temp_file,self::http_get($file));
$handle=fopen($temp_file,"r");
$fstat=fstat($handle);
if($fstat['size']>$this->mediaMaxSize[$type]){
$resizeSize=intval($this->mediaMaxSize[$type]/$fstat['size']*100);
ImageTool::resizeImage($temp_file_resize,$temp_file,400,400,$resizeSize);//图片太大再处理压缩
$temp_file=$temp_file_resize;
//return40006;//大小错误
}
$filePath=realpath($temp_file);
$uploadUrl=sprintf(self::UPLOAD_MEDIA_URL,$this->access_token,$type);
$postData=array("r"=>time(),'media'=>"@{$filePath}");
$result=self::http_post($uploadUrl,$postData);
$result=json_decode($result,TRUE);
return$result;
}
/**
*群发图文信息
*@paramtype$touser粉丝数组/粉丝组id
*@paramtype$media_id
*@returntype
*/
publicfunctionsendArticles($touser,$media_id){
$errarr=array();
$postData=array();
$postData['mpnews']=array("media_id"=>$media_id);
$postData['msgtype']="mpnews";
if(is_array($touser)){
//用户列表群发
$postData['touser']=$touser;
$url='https://api.weixin.qq.com/cgi-bin/message/mass/send?access_token=%s';
}else{
$group=intval($touser);
$groups=$this->getGroups(true);
if(key_exists($group,$groups['list'])){
$postData['filter']=array("group_id"=>$group);
}else{
$errarr['errcode']=40050;//无效分组id
$errarr['errmsg']=self::$errorno[$errarr['errcode']];
return$errarr;
}
$url='https://api.weixin.qq.com/cgi-bin/message/mass/sendall?access_token=%s';
}
$url=sprintf($url,$this->access_token);
$result=self::http_post($url,self::json_encode($postData));
$result=json_decode($result,TRUE);
return$result;
}
/**
*删除群发信息
*@paramtype$msgid
*@returntype
*/
publicfunctiondelSend($msgid){
$url='https://api.weixin.qq.com/cgi-bin/message/mass/delete?access_token=%s';
$url=sprintf($url,$this->access_token);
$postData=array('msgid'=>$msgid,'r'=>time());
$result=self::http_post($url,self::json_encode($postData));
$result=json_decode($result,TRUE);
return$result;
}
/**
*群发图文素材上传
$postData=array('articles'=>array($item,$item,...));
$item=array(
"thumb_media_id"=>"WMQubqCECMQwAjqh8CI500LfhyoG0vmTTlKKJM5oP-of0uLML1_2s26j8XeIorDL",
"author"=>"xxx",
"title"=>"HappyDay",
"content_source_url"=>"www.qq.com",
"content"=>"content",
"digest"=>"digest"
);
*return
array(size=3)
'type'=>string'news'(length=4)
'media_id'=>string'OuXqv2dgZzxAmK4z-tvStgr6InG18oIllWkD6Tj1qJZVRg-2f64FDU2D3J7dptHs'(length=64)
'created_at'=>int1400477183
*/
publicfunctionuploadNews($postData){
$uploadUrl=sprintf(self::UPLOAD_NEWS_URL,$this->access_token);
$result=self::http_post($uploadUrl,self::json_encode($postData));
$result=json_decode($result,TRUE);
return$result;
}
/**
*获取粉丝列表
*@paramtype$nextOpenId
*@returntype
*/
publicfunctiongetAllConnects($nextOpenId=""){
$url='https://api.weixin.qq.com/cgi-bin/user/get?access_token=%s&next_openid=%s';
$url=sprintf($url,$this->access_token,$nextOpenId);
$result=self::http_get($url);
$result=json_decode($result,TRUE);
$count=count($result['data']['openid']);
$list=$result['data']['openid'];
if($result['data']['openid'][$count-1]==$result['next_openid']){
return$result['data']['openid'];
}else{
$templist=$this->getAllConnects($result['next_openid']);
$list=array_merge($list,$templist);
return$list;
}
}
/**
*根据粉丝唯一id获取微信信息
*@paramtype$openid
*@returntype
*/
publicfunctiongetFansInfo($openid){
$url='https://api.weixin.qq.com/cgi-bin/user/info?access_token=%s&openid=%s&lang=zh_CN';
$url=sprintf($url,$this->access_token,$openid);
$result=self::http_get($url);
$result=json_decode($result,TRUE);
return$result;
}
/**
*更新粉丝组信息
*@paramtype$openid
*@paramtype$groupid
*@returntype
*/
publicfunctionupdateFansGroups($openid,$groupid){
$url='https://api.weixin.qq.com/cgi-bin/groups/members/update?access_token=%s';
$url=sprintf($url,$this->access_token);
$postData=array("to_groupid"=>$groupid,'openid'=>$openid);
$result=self::http_post($url,self::json_encode($postData));
$result=json_decode($result,TRUE);
$this->getGroups(true);
return$result;
}
/**
*获取粉丝组信息
*@paramtype$openid
*@returntype
*/
publicfunctiongetFansGroupInfo($openid){
$url='https://api.weixin.qq.com/cgi-bin/groups/getid?access_token=%s';
$url=sprintf($url,$this->access_token);
$postData=array("r"=>time(),'openid'=>$openid);
$result=self::http_post($url,self::json_encode($postData));
$result=json_decode($result,TRUE);
return$result['groupid'];
}
/**
*获取唯一key
*@paramtype$key
*@returntype
*/
publicfunctiongetKey($key){
returnmd5($this->appid.$this->appsecret.$key);
}
/**
*获取媒体图片到本地
*@paramtype$mediaid
*@returnstring
*/
publicfunctiongetMedia($mediaid){
$url=sprintf(self::GET_MEDIA_URL,$this->access_token,$mediaid);
$result=self::http_get($url);
$temp_file=$this->tem_file_path.'getMedia.jpg';
file_put_contents($temp_file,$result);
return$temp_file;
}
/**
*用户组
*@paramtype$flag强制刷新用户组
*@returntype
*/
publicfunctiongetGroups($flag=false){
$key=$this->appid.'gasdfev'.$this->appsecret;
$result=Cache::get($key);
if(empty($result)||$flag){
$url='https://api.weixin.qq.com/cgi-bin/groups/get?access_token=%s';
$url=sprintf($url,$this->access_token);
$result=self::http_get($url);
$result=json_decode($result,TRUE);
$temg=array();
$temlist=array();
foreach($result['groups']as$k=>$v){
$temg[$v['id']]=$v;
$temlist[$v['id']]=$v['name'];
}
$result['map']=$temg;
$result['list']=$temlist;
Cache::set($key,$result);
}
return$result;
}
/**
*新增用户组
*@paramtype$name
*@returntype
*/
publicfunctioncreateGroup($name){
$url='https://api.weixin.qq.com/cgi-bin/groups/create?access_token=%s';
$url=sprintf($url,$this->access_token);
$result=self::http_post($url,self::json_encode(array('group'=>array('name'=>$name))));
$result=json_decode($result,TRUE);
return$result;
}
/**
*修改用户组
*@paramtype$id
*@paramtype$name
*@returntype
*/
publicfunctionmodifyGroup($id,$name){
$url='https://api.weixin.qq.com/cgi-bin/groups/update?access_token=%s';
$url=sprintf($url,$this->access_token);
$result=self::http_post($url,self::json_encode(array('group'=>array('id'=>$id,'name'=>$name))));
$result=json_decode($result,TRUE);
return$result;
}
/**
*多客服接入
*@globaltype$wid
*@paramtype$postObj
*/
publicstaticfunctionresponseService($postObj){
global$wid;
$fromUsername=$postObj->FromUserName;
$toUsername=$postObj->ToUserName;
$textTpl="<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[transfer_customer_service]]></MsgType>
</xml>";
$resstr=sprintf($textTpl,$fromUsername,$toUsername,time());
echo$resstr;
}
/**
*微信回复多图文
*@globaltype$wid
*@paramtype$res
*array(array(),array()
*);
*@paramtype$rid
*@paramtype$postObj
*/
publicstaticfunctionresponse_morearts($res,$postObj){
global$wid;
$fromUsername=$postObj->FromUserName;
$toUsername=$postObj->ToUserName;
$textTpl="<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<ArticleCount>%s</ArticleCount>
<Articles>
ITEM
</Articles>
</xml>";
$resstr=sprintf($textTpl,$fromUsername,$toUsername,time(),"news",count($res));
$item='';
$subitem="<item>
<Title><![CDATA[%s]]></Title>
<Description><![CDATA[%s]]></Description>
<PicUrl><![CDATA[%s]]></PicUrl>
<Url><![CDATA[%s]]></Url>
</item>";
foreach($resas$r){
$r['url']=self::parseUrl($r['url']);
$item.=sprintf($subitem,$r['tit'],$r['des'],self::complateUrl($r['pic']),self::replaceToWXUrl(self::complateUrl($r['url']),$postObj));
}
$resstr=str_replace('ITEM',$item,$resstr);
echo$resstr;
}
/**
*url解析
*@paramtype$url
*@returnstring
*/
publicstaticfunctioncomplateUrl($url){
if(false===stristr($url,"http://")){//查找http://如果不存在
if(0===strpos($url,'/')){//查找首字母如果存在
$url=substr($url,1);//去除/
}
$url="http://".$_SERVER['HTTP_HOST'].'/'.$url;//拼接完整路径
}
return$url;
}
/**
*微信url固定参数替换
*@paramtype$url
*@paramtype$postObj
*@returntype
*/
publicstaticfunctionreplaceToWXUrl($url,$postObj){
global$wechatid;
returnstr_ireplace('fromUsername',$wechatid,$url);
}
/**
*完成以下行为
*parseUrlParam
*setUrlPublicParam
*buildUrlParam
*@paramtype$url
*@paramtype$other附加参数基础参数widwxidwechatid
*/
publicstaticfunctionparseUrl($url,$other=array()){
$url=self::parseUrlParam($url);
$url=self::setUrlPublicParam($url);
if(is_array($other)&&!empty($other)){
$url['param']=array_merge($url['param'],$other);
}
$url=self::buildUrlParam($url);
return$url;
}
/**
*分析url
*@paramtype$url
*@returntype
*/
publicstaticfunctionparseUrlParam($url){
$temp=explode("?",$url);
$url0=$temp[0];
$url1=$temp[1];
$p=explode("&",$url1);
$param=array();
foreach($pas$v){
$tempp=explode("=",$v);
$param[$tempp[0]]=$tempp[1];
}
returnarray("url"=>$url0,"param"=>$param);
}
/**
*组装url
*@paramtype$arr
*@returntype
*/
publicstaticfunctionbuildUrlParam($arr){
$url=$arr['url'];
$param=$arr['param'];
$param_arr=array();
foreach($paramas$k=>$v){
if($k=="")continue;
$param_arr[]=$k."=".$v;
}
return$url."?".implode("&",$param_arr)."#mp.weixin.qq.com";
}
/**
*设置微信保留参数信息
*@globaltype$uid
*@globaltype$wid
*@globaltype$wechatid
*@paramtype$url
*@returntype
*/
publicstaticfunctionsetUrlPublicParam($url){
global$uid,$wid,$wechatid;
$url['param']['wid']=$wid;
$url['param']['wxid']=$wechatid;
$url['param']['wechatid']=$wechatid;
return$url;
}
publicstatic$errorno=array(
'-1'=>'系统繁忙',
'0'=>'请求成功',
'40001'=>'获取access_token时AppSecret错误,或者access_token无效',
'40002'=>'不合法的凭证类型',
'40003'=>'不合法的OpenID',
'40004'=>'不合法的媒体文件类型',
'40005'=>'不合法的文件类型',
'40006'=>'不合法的文件大小',
'40007'=>'不合法的媒体文件id',
'40008'=>'不合法的消息类型',
'40009'=>'不合法的图片文件大小',
'40010'=>'不合法的语音文件大小',
'40011'=>'不合法的视频文件大小',
'40012'=>'不合法的缩略图文件大小',
'40013'=>'不合法的APPID',
'40014'=>'不合法的access_token',
'40015'=>'不合法的菜单类型',
'40016'=>'不合法的按钮个数',
'40017'=>'不合法的按钮个数',
'40018'=>'不合法的按钮名字长度',
'40019'=>'不合法的按钮KEY长度',
'40020'=>'不合法的按钮URL长度',
'40021'=>'不合法的菜单版本号',
'40022'=>'不合法的子菜单级数',
'40023'=>'不合法的子菜单按钮个数',
'40024'=>'不合法的子菜单按钮类型',
'40025'=>'不合法的子菜单按钮名字长度',
'40026'=>'不合法的子菜单按钮KEY长度',
'40027'=>'不合法的子菜单按钮URL长度',
'40028'=>'不合法的自定义菜单使用用户',
'40029'=>'不合法的oauth_code',
'40030'=>'不合法的refresh_token',
'40031'=>'不合法的openid列表',
'40032'=>'不合法的openid列表长度',
'40033'=>'不合法的请求字符,不能包含\uxxxx格式的字符',
'40035'=>'不合法的参数',
'40038'=>'不合法的请求格式',
'40039'=>'不合法的URL长度',
'40050'=>'不合法的分组id',
'40051'=>'分组名字不合法',
'40059'=>'不合法的消息id',
'41001'=>'缺少access_token参数',
'41002'=>'缺少appid参数',
'41003'=>'缺少refresh_token参数',
'41004'=>'缺少secret参数',
'41005'=>'缺少多媒体文件数据',
'41006'=>'缺少media_id参数',
'41007'=>'缺少子菜单数据',
'41008'=>'缺少oauthcode',
'41009'=>'缺少openid',
'42001'=>'access_token超时',
'42002'=>'refresh_token超时',
'42003'=>'oauth_code超时',
'43001'=>'需要GET请求',
'43002'=>'需要POST请求',
'43003'=>'需要HTTPS请求',
'43004'=>'需要接收者关注',
'43005'=>'需要好友关系',
'44001'=>'多媒体文件为空',
'44002'=>'POST的数据包为空',
'44003'=>'图文消息内容为空',
'44004'=>'文本消息内容为空',
'45001'=>'多媒体文件大小超过限制',
'45002'=>'消息内容超过限制',
'45003'=>'标题字段超过限制',
'45004'=>'描述字段超过限制',
'45005'=>'链接字段超过限制',
'45006'=>'图片链接字段超过限制',
'45007'=>'语音播放时间超过限制',
'45008'=>'图文消息超过限制',
'45009'=>'接口调用超过限制',
'45010'=>'创建菜单个数超过限制',
'45015'=>'回复时间超过限制',
'45016'=>'系统分组,不允许修改',
'45017'=>'分组名字过长',
'45018'=>'分组数量超过上限',
'46001'=>'不存在媒体数据',
'46002'=>'不存在的菜单版本',
'46003'=>'不存在的菜单数据',
'46004'=>'不存在的用户',
'47001'=>'解析JSON/XML内容错误',
'48001'=>'api功能未授权',
'50001'=>'用户未授权该api'
);
/**
*GET请求
*@paramstring$url
*/
publicstaticfunctionhttp_get($url){
if(!function_exists('curl_init')){
die('curl未开启');
};
$oCurl=curl_init();
if(stripos($url,"https://")!==FALSE){
curl_setopt($oCurl,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($oCurl,CURLOPT_SSL_VERIFYHOST,FALSE);
}
curl_setopt($oCurl,CURLOPT_URL,$url);
curl_setopt($oCurl,CURLOPT_RETURNTRANSFER,1);
$sContent=curl_exec($oCurl);
$aStatus=curl_getinfo($oCurl);
curl_close($oCurl);
if(intval($aStatus["http_code"])==200){
return$sContent;
}else{
returnfalse;
}
}
/**
*POST请求
*@paramstring$url
*@paramarray$param
*@returnstringcontent
*/
publicstaticfunctionhttp_post($url,$param,$httpBuildQuery=false){
if(!function_exists('curl_init')){
die('curl未开启');
};
$oCurl=curl_init();
if(stripos($url,"https://")!==FALSE){
curl_setopt($oCurl,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($oCurl,CURLOPT_SSL_VERIFYHOST,false);
}
curl_setopt($oCurl,CURLOPT_URL,$url);
curl_setopt($oCurl,CURLOPT_RETURNTRANSFER,1);
//curl_setopt($oCurl,CURLOPT_HTTPHEADER,$header);//设置HTTP头
curl_setopt($oCurl,CURLOPT_POST,1);
if($httpBuildQuery){
$param=http_build_query($param);
}
curl_setopt($oCurl,CURLOPT_POSTFIELDS,$param);
$sContent=curl_exec($oCurl);
$aStatus=curl_getinfo($oCurl);
curl_close($oCurl);
if(intval($aStatus["http_code"])==200){
return$sContent;
}else{
returnfalse;
}
}
/**
*微信api不支持中文转义的json结构
*@paramarray$arr
*/
staticfunctionjson_encode($arr){
$parts=array();
$is_list=false;
//Findoutifthegivenarrayisanumericalarray
$keys=array_keys($arr);
$max_length=count($arr)-1;
if(($keys[0]===0)&&($keys[$max_length]===$max_length)){//Seeifthefirstkeyis0andlastkeyislength-1
$is_list=true;
for($i=0;$i<count($keys);$i++){//Seeifeachkeycorrespondestoitsposition
if($i!=$keys[$i]){//Akeyfailsatpositioncheck.
$is_list=false;//Itisanassociativearray.
break;
}
}
}
foreach($arras$key=>$value){
if(is_array($value)){//Customhandlingforarrays
if($is_list)$parts[]=self::json_encode($value);/*:RECURSION:*/
else$parts[]='"'.$key.'":'.self::json_encode($value);/*:RECURSION:*/
}else{
$str='';
if(!$is_list)$str='"'.$key.'":';
//Customhandlingformultipledatatypes
if(is_numeric($value)&&$value<2000000000)$str.=$value;//Numbers
elseif($value===false)$str.='false';//Thebooleans
elseif($value===true)$str.='true';
else$str.='"'.addslashes($value).'"';
//Allotherthings
//:TODO:Isthereanymoredatatypeweshouldbeinthelookoutfor?(Object?)
$parts[]=$str;
}
}
$json=implode(',',$parts);
if($is_list)return'['.$json.']';//ReturnnumericalJSON
return'{'.$json.'}';//ReturnassociativeJSON
}
}
以上就是本文的全部内容,希望对大家学习php程序设计有所帮助。