/** * 直接 parse $_REQUEST * @param $_data * @return bool */ public function parse($data) { $this->_ctrl = Config::getField('project', 'default_ctrl_name', 'main\\main'); $this->_method = Config::getField('project', 'default_method_name', 'main'); $apn = Config::getField('project', 'ctrl_name', 'a'); $mpn = Config::getField('project', 'method_name', 'm'); if (isset($data[$apn])) { $this->_ctrl = \str_replace('/', '\\', $data[$apn]); } if (isset($data[$mpn])) { $this->_method = $data[$mpn]; } if (!empty($_SERVER['PATH_INFO'])) { $routeMap = ZRoute::match(Config::get('route', false), $_SERVER['PATH_INFO']); if (is_array($routeMap)) { $this->_ctrl = $routeMap[0]; $this->_method = $routeMap[1]; if (!empty($routeMap[2]) && is_array($routeMap[2])) { //参数优先 $data = $data + $routeMap[2]; } } } $this->_params = $data; $this->_tpl_file = str_replace('\\', DS, $this->_ctrl) . DS . $this->_method . '.php'; return true; }
/** * 直接 parse $_REQUEST * @param $_data * @return bool */ public function parse($data) { $ctrlName = Config::getField('project', 'default_ctrl_name', 'main\\main'); $methodName = Config::getField('project', 'default_method_name', 'main'); $apn = Config::getField('project', 'ctrl_name', 'a'); $mpn = Config::getField('project', 'method_name', 'm'); if (isset($data[$apn])) { $ctrlName = \str_replace('/', '\\', $data[$apn]); } if (isset($data[$mpn])) { $methodName = $data[$mpn]; } if (!empty($_SERVER['PATH_INFO'])) { //swoole_http模式 需要在onRequest里,设置一下 $_SERVER['PATH_INFO'] = $request->server['path_info'] $routeMap = ZRoute::match(Config::get('route', false), $_SERVER['PATH_INFO']); if (is_array($routeMap)) { $ctrlName = \str_replace('/', '\\', $routeMap[0]); $methodName = $routeMap[1]; if (!empty($routeMap[2]) && is_array($routeMap[2])) { //参数优先 $data = $data + $routeMap[2]; } } } Request::init($ctrlName, $methodName, $data, Config::getField('project', 'view_mode', 'Php')); return true; }
/** * 包格式: 包总长+命令id+请求id+数据 * * @param $_data * @return bool */ public function parse($_data) { $ctrlName = Config::getField('project', 'default_ctrl_name', 'main\\main'); $methodName = Config::getField('project', 'default_method_name', 'main'); if (empty($this->_cache)) { $this->_cache = ZCache::getInstance('Php'); } $fd = Request::getFd(); $cacheData = $this->_cache->get($fd); if (!empty($cacheData)) { $_data = $cacheData . $_data; $this->_cache->delete($fd); } if (empty($_data)) { return false; } $packData = new MessagePacker($_data); $packLen = $packData->readInt(); $dataLen = \strlen($_data); if ($packLen > $dataLen) { $this->_cache->set($fd, $_data); return false; } elseif ($packLen < $dataLen) { $this->_cache->set($fd, \substr($_data, $packLen, $dataLen - $packLen)); } $packData->resetOffset(4); $data = []; $data['_cmd'] = $packData->readInt(); $pathinfo = Config::getField('cmdlist', $data['_cmd']); $data['_rid'] = $packData->readInt(); $params = $packData->readString(); $unpackData = \json_decode(gzdecode($params), true); if (!empty($unpackData) && \is_array($unpackData)) { $data += $unpackData; } $routeMap = ZRoute::match(Config::get('route', false), $pathinfo); if (is_array($routeMap)) { $ctrlName = $routeMap[0]; $methodName = $routeMap[1]; if (!empty($routeMap[2]) && is_array($routeMap[2])) { //参数优先 $data = $data + $routeMap[2]; } } Request::init($ctrlName, $methodName, $data); return true; }
public static function makeUrl($action, $method, $params = array()) { return ZRoute::makeUrl($action, $method, $params); }
width: 600px; margin: 200px auto; } #show_avatar{ width: 120px; position: relative; left: 420px; top: -140px; } #show_avatar img{ border-radius: 8px; } </style> <div class='container login' > <form action="<?php echo ZRoute::makeUrl('login', 'check'); ?> " method="post" class="well" style="height: 162px"> <h3>zphp websocket chat</h3> <input type="text" name="name" placeholder="请输入用户名" required="required"/></br> <input type="password" name="password" placeholder="请输入密码" required="required"/></br> <input type="submit" class="btn btn-primary" value="Login" id="login_submit"> <input type="reset" class="btn" value="Reset"> [<a href="<?php echo ZRoute::makeUrl('login', 'reg'); ?> ">注册</a>] </form> </div> </body> </html>
if(pic=='') { return } $('#avatar_pic').attr('src', pic); $('#avatar_pic').show(); } function pic_error(o) { $(o).hide(); falert("图片不存在,请重新填写一个吧。^-^"); $('input[name=avatar]').val(''); } </script> <div class='container login' > <form action="<?php echo ZRoute::makeUrl('login', 'check'); ?> " method="post" class="well" onsubmit="return checkForm(this)" style="height: 162px"> <h3>zphp websocket chat 注册</h3> <input type="text" name="name" placeholder="请输入用户名" required="required"/></br> <input type="password" name="password" placeholder="请输入密码" required="required"/></br> <input type="submit" class="btn btn-primary" value="注册" id="login_submit"> <input type="reset" class="btn" value="Reset"> [<a href="<?php echo ZRoute::makeUrl('main', 'main'); ?> ">登录</a>] </form> </div> </body> </html>