首页 > 代码库 > php之base.php 代码解释

php之base.php 代码解释

<?phpif (!defined(‘BASEPATH‘)) exit(‘No direct script access allowed‘);/** * 处理输出 */class ApiOut{    /**     * 返回状态,基本参考 HTTP Status Code     * @var integer     */    public $status = 200;    //定义返回值的状态    /**     * 返回的数据     * @var array     */    public $data = null;    //定义返回的数据    /**     * 输出JSON格式的结果,并中止程序的运行     * @return void     */    public function json()    {   //用json格式返回,定义头文件        header(‘Content-type: application/json‘);        echo json_encode($this, JSON_UNESCAPED_UNICODE);// 直接不转码,输出中文        die(); //die()函数输出一条消息,并退出当前的脚本,类似exit()函数的别名    }}class Base extends CI_Controller {    var $layout = "";    var $_output = array();    function __construct() { //构造函数可以接受参数,能够在对象车创建的时候赋值给对象的属性        parent::__construct(); // php的构造函数        $this->_output[‘is_login‘] = FALSE;//默认登陆为false         $this->_output[‘tpl_body‘] = "";         $this->_output[‘current_admin‘] = array();        $this->_output[‘__site‘] = array(            ‘title‘=>$this->config->item(‘site_title‘),//读取config文件,设置站名            ‘name‘=>$this->config->item(‘site_title‘),             ‘logo_path‘=>$this->config->item(‘logo_path‘));//设置logo的路径        $this->load->database();//连接数据库    }    /**     * 设置页面主体内容     * @param string $viewname 模版名称     * @param array  $data     填充模版的数据     */    public function set_body($viewname, $data=array())    {        $data[‘__site‘] = &$this->_output[‘__site‘];        $body = $this->load->view($viewname, $data, TRUE);// 加载页面的主体        $this->_output[‘tpl_body‘] = $body;    }    /**     * 输出html     * @param  string $base_template layout的名称     */    public function html($base_template="m/base")    {        $this->load->view($base_template, $this->_output); //输出页面的页头,和页尾    }    /**     * 用于设置html的title     * @param string  $content  标题内容     * @param boolean $override 是否重写标题,如果不重写,则会自动带上站点默认的标题     */    public function set_html_title($content, $override=FALSE)    {        # code...        if ($override) {       //加载网站的标题,标题内容 ,里面有一个参数,是否重写标题,如果是的话就重写,如果不是的话,就带上站点的默认标题            $this->_output[‘__site‘][‘title‘] = $content;        }else{            $this->_output[‘__site‘][‘title‘] = $content.‘ - ‘.$this->_output[‘__site‘][‘title‘];        }    }    /**     * 包装url用于微信中验证用户信息     * @param  string $url 要包装的url     * @return string      包装后的url     */    public function link_wrapper($url) //包装url中用于微信来验证用户信息    {        return "https://open.weixin.qq.com/connect/oauth2/authorize?appid=".$this->config->item(‘WECHAT_CORP_ID‘)."&redirect_uri=".urlencode($url)."&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect";    }}class AdminBase extends Base {    function __construct() {  //adminbase 的构造函数,继承自父类 base        parent::__construct();        $this->_output[‘__site‘][‘menu‘] = $this->config->item(‘menu‘); //输出菜单        $this->load->model(‘Admin_model‘);//加载管理员数据模型    }       public function check_login()//检查是否登陆    {        if (!$this->Admin_model->is_login()) {            //TODO 记录用户最后访问的地址            // $this->last_url($this->uri->uri_string());            redirect(‘/m/admin/login‘);  //假如没有登陆的话,跳转到登陆的页面        }else{            $this->_output[‘is_login‘] = True; //假如登陆的话,输出is_login 为true            $admin = array(‘nickname‘=>$this->Admin_model->userdata(‘nickname‘),                           ‘id‘=>$this->Admin_model->userdata(‘id‘),                           ‘user‘=>$this->Admin_model->userdata(‘user‘)); //读取登陆用户的所有信息,并且组合从数组来封装             $this->_output[‘current_admin‘] = $admin; //输出当前的用户的信息        }    }             //用来检查用户的访问权限        public function check_qx($name){        //$name代表要查询的字段名字          $this->load->model(‘User_model‘);        $this->load->model(‘Admin_model‘);        $uid = $this->Admin_model->userdata(‘id‘);         $useridinfo=$this->db->query("SELECT `userid` FROM `admin_user` WHERE `id` = $uid")->result_array();               //这是得到的userid:        $userid=$useridinfo[0][‘userid‘];                 // $qxuserinfo=  $this->db->query("SELECT * FROM `qx` WHERE `userid` LIKE ‘$uid‘")->result_array();                $result = $this->db->query("SELECT * FROM `qx` WHERE `userid` LIKE ‘$userid‘")->result_array();         //这是根据对应字段得到的返回值                    $url= $_SERVER[‘HTTP_REFERER‘];        //var_dump($url);        //var_dump($url);                /*if($result[0][$name]==0){             //等于0 说明没有权力访问             //TODO 记录用户最后访问的地址,自动返回上一级目录               //$referer = $_SERVER[‘HTTP_REFERER‘];              //redirect($referer);             //echo "<script>alert(‘没有访问权限,请联系你的管理员‘);document.location.href=http://www.mamicode.com/‘$referer‘</script>";        }else{            //        };*/                /*        if($userdata[‘systemnyc‘]==0){            $referer = $_SERVER[‘HTTP_REFERER‘];            redirect($referer);        } */                  }    }

 

php之base.php 代码解释