人妻~夫の上司犯感との,公么大龟弄得我好舒服秀婷视频,国产成人久久av免费,亚洲精品一区久久久久久

您的位置:首頁 > 要聞 >

如何利用Thinkphp框架開發(fā)移動端接口詳解

2023-05-31 07:07:38 來源:互聯(lián)網(wǎng)


(資料圖)

方案一:給原生APP提供api接口

使用TP框架時 放在common文件夾下文件名就叫function.php

/***Createdbyzhangkx*Email:zkx520tnhb@163.com*Date:2015/8/1*Time:23:15*//******api開發(fā)輔助函數(shù)*******//***@paramnull$msg返回正確的提示信息*@paramflagsuccessCURD操作成功*@paramarray$data具體返回信息*Functiondescript:返回帶參數(shù),標志信息,提示信息的json數(shù)組**/functionreturnApiSuccess($msg=null,$data=array()){$result=array("flag"=>"Success","msg"=>$msg,"data"=>$data);printjson_encode($result);}/***@paramnull$msg返回具體錯誤的提示信息*@paramflagsuccessCURD操作失敗*Functiondescript:返回標志信息‘Error",和提示信息的json數(shù)組*/functionreturnApiError($msg=null){$result=array("flag"=>"Error","msg"=>$msg,);printjson_encode($result);}/***@paramnull$msg返回具體錯誤的提示信息*@paramflagsuccessCURD操作失敗*Functiondescript:返回標志信息‘Error",和提示信息,當前系統(tǒng)繁忙,請稍后重試;*/functionreturnApiErrorExample(){$result=array("flag"=>"Error","msg"=>"當前系統(tǒng)繁忙,請稍后重試!",);printjson_encode($result);}/***@paramnull$data*悔寬@return碧握亮array|mixed|null*Functiondescript:過濾post提交的參數(shù);**/functioncheckDataPost($data=null){if(!empty($data)){$data=explode(",",$data);foreach($dataas$k=>$v){if((!isset($_POST[$k]))||(empty($_POST[$k]))){if($_POST[$k]!==0&&$_POST[$k]!=="0"){returnApiError($k."值為空!");}}}unset($data);$data=I("post.");unset($data["_URL_"],$data["token"]);return$data;}}/***@paramnull$data*@returnarray|mixed|null*Functiondescript:過濾get提交的參數(shù);**/functioncheckDataGet($data=null){if(!empty($data)){$data=explode(",",$data);foreach($dataas$k=>皮迅$v){if((!isset($_GET[$k]))||(empty($_GET[$k]))){if($_GET[$k]!==0&&$_GET[$k]!=="0"){returnApiError($k."值為空!");}}}unset($data);$data=I("get.");unset($data["_URL_"],$data["token"]);return$data;}}查詢單個果品詳細信息/***發(fā)布模塊**獲取信息單個果品詳細信息**/publicfunctiongetMyReleaseInfo(){//檢查是否通過post方法得到數(shù)據(jù)checkdataPost("id");$where["id"]=$_POST["id"];$field[]="id,fruit_name,high_price,low_price,address,size,weight,fruit_pic,remark";$releaseInfo=$this->release_obj->findRelease($where,$field);$releaseInfo["remark"]=mb_substr($releaseInfo["remark"],0,49,"utf-8")."...";//多張圖地址按逗號截取字符串,截取后如果存在空數(shù)組則需要過濾掉$releaseInfo["fruit_pic"]=array_filter(explode(",",$releaseInfo["fruit_pic"]));$fruit_pic=$releaseInfo["fruit_pic"];unset($releaseInfo["fruit_pic"]);//為圖片添加存儲路徑foreach($fruit_picas$k=>$v){$releaseInfo["fruit_pic"][]="http://".$_SERVER["HTTP_HOST"]."/Uploads/Release/".$v;}if($releaseInfo){returnApiSuccess("",$releaseInfo);}else{returnApiError("什么也沒查到(+_+)!");}}findRelease()方法的model/***查詢一條數(shù)據(jù)*/publicfunctionfindRelease($where,$field){if($where["status"]==""||empty($where["status"])){$where["status"]=array("neq","9");}$result=$this->where($where)->field($field)->find();return$result;}app端接收到的數(shù)據(jù)(解碼json之后){"flag":"success","message":"","responseList":{"id":"2","fruit_name":"蘋果","high_price":"8.0","low_price":"5.0","address":"天津小白樓水果市場","size":"2.0","weight":"2.0","remark":"急需...","fruit_pic":["http://fruit.txunda.com/Uploads/Release/201508/55599e7514815.png","http://fruit.txunda.com/Uploads/Release/201508/554f2dc45b526.jpg"]}}app端接收到的數(shù)據(jù)(原生json串)代碼如下:{"flag":"success","message":"","responseList":{"id":"2","fruit_name":"\u82f9\u679c","high_price":"8.0","low_price":"5.0","address":"\u5929\u6d25\u5c0f\u767d\u697c\u6c34\u679c\u5e02\u573a","size":"2.0","weight":"2.0","remark":"\u6025\u9700...","fruit_pic":["http:\/\/fruit.txunda.com\/Uploads\/Release\/201508\/55599e7514815.png","http:\/\/fruit.txunda.com\/Uploads\/Release\/201508\/554f2dc45b526.jpg"]}}

方案二:另外我們還可以通過ThinkPHP實現(xiàn)移動端訪問自動切換主題模板,這樣也可以做到移動端訪問

ThinkPHP的模板主題機制,如果只是在PC,只要需修改 DEFAULT_THEME (新版模板主題默認是空,表示不啟用模板主題功能)配置項就可以方便的實現(xiàn)多模板主題切換。

但對于移動端與PC端,也許你會設計完全不同的主題風格,且針對不同的來路提供不同的渲染方式,其中一種比較流行的方法是“響應式設計”,但就本人經(jīng)歷而言,要實現(xiàn)完全的“響應式設計”并不是那么容易,且解決兼容問題也是個難題,假設是大型站點,比如:淘寶、百度、拍拍這些,響應式設計肯定是滿足不了需求的,而是需要針對手機訪問用戶提供單獨的手機網(wǎng)站。

ThinkPHP 完全能夠?qū)崿F(xiàn),而且非常的簡單。與TPM的智能模版切換引擎相同,只要對來路進行判斷處理就行了。

一、將 ismobile() 加入到{項目/Common/common.php}

functionismobile(){//如果有HTTP_X_WAP_PROFILE則一定是移動設備if(isset($_SERVER["HTTP_X_WAP_PROFILE"]))returntrue;//此條摘自TPM智能切換模板引擎,適合TPM開發(fā)if(isset($_SERVER["HTTP_CLIENT"])&&"PhoneClient"==$_SERVER["HTTP_CLIENT"])returntrue;//如果via信息含有wap則一定是移動設備,部分服務商會屏蔽該信息if(isset($_SERVER["HTTP_VIA"]))//找不到為flase,否則為truereturnstristr($_SERVER["HTTP_VIA"],"wap")?true:false;//判斷手機發(fā)送的客戶端標志,兼容性有待提高if(isset($_SERVER["HTTP_USER_AGENT"])){$clientkeywords=array("nokia","sony","ericsson","mot","samsung","htc","sgh","lg","sharp","sie-","philips","panasonic","alcatel","lenovo","iphone","ipod","blackberry","meizu","android","netfront","symbian","ucweb","windowsce","palm","operamini","operamobi","openwave","nexusone","cldc","midp","wap","mobile");//從HTTP_USER_AGENT中查找手機瀏覽器的關鍵字if(preg_match("/(".implode("|",$clientkeywords).")/i",strtolower($_SERVER["HTTP_USER_AGENT"]))){returntrue;}}//協(xié)議法,因為有可能不準確,放到最后判斷if(isset($_SERVER["HTTP_ACCEPT"])){//如果只支持wml并且不支持html那一定是移動設備//如果支持wml和html但是wml在html之前則是移動設備if((strpos($_SERVER["HTTP_ACCEPT"],"vnd.wap.wml")!==false)&&(strpos($_SERVER["HTTP_ACCEPT"],"text/html")===false||(strpos($_SERVER["HTTP_ACCEPT"],"vnd.wap.wml")

二、在{項目/Lib/}創(chuàng)建一個 CommonAction.php,假設你的項目已公共控制器,則無需創(chuàng)建,直接加在里面就行了。

ClassCommonActionextendsAction{Publicfunction_initialize(){//移動設備瀏覽,則切換模板if(ismobile()){//設置默認默認主題為MobileC("DEFAULT_THEME","Mobile");}//............你的更多代碼.......}}

關鍵詞:

[責任編輯:xwzkw]

相關閱讀

亚洲女初尝黑人巨高清| 无套和妇女做内谢| 久精品国产欧美亚洲色AⅤ大片 | 国产情侣一区二区三区| 最好免费高清视频在线观看| 国产精品久久久久久久久鸭无码| 野花日本韩国免费视频6| 熟女国产精品视频一区二区三区 | 久久天天躁狠狠躁夜夜avapp| 亚洲一区二区观看播放| 越看水流的越多的故事| 3dmax动漫 在线观看| 鬼父在线视频观看| 亚洲第一无码XXXXXX| 古代禁伦h肉全文| 娜娜的yin荡生涯h全文| 可播放的中国男gary| 啊灬啊灬啊灬免费毛片| 国产亚洲欧美精品永久| 中文乱幕日产无线码| 欧美精品99久久久啪啪| 久久精品国产99国产精品导航| 浪漫樱花动漫在线观看免费| 成人三级做爰视频在线看| 撅高屁股乖乖被学长cao男男| 99久久精品免费看国产| 久久久久无码精品国产不卡| 2012中文字幕高清在线中文字幕| 国产av在线播放| 欧美freesex黑人又粗又大| 善良的嫂子在线观看| 边吃奶边被躁欧美三级| 初尝人妻少妇小军| 偷玩熟睡醉酒体育壮男gv| 向风而行免费观看完整版| 国产风流老太婆大bbbhd视频| 97久久久久人妻精品专区| 在教室伦流澡到高潮h免费视频| 亚洲成a人v欧美综合天堂麻豆| ass白嫩白嫩的少妇pics| 啊灬啊灬啊灬免费毛片|