Blogger Information
Blog 13
fans 0
comment 2
visits 9548
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
8.7路由
55555的博客
Original
701 people have browsed it

//  路由的基本功能:将URL地址pathinfo,映射到指定的控制器方法中
//  路由是一个请求分发器

<?php

//  路由的基本功能:将URL地址pathinfo,映射到指定的控制器方法中
//  路由是一个请求分发器

//  http://700***/0807/demo/mvc/route2.php/product/id/3/price/36.9

//product:方法
//id、name:参数

$uri = $_SERVER['PATH_INFO'];
echo $uri;
echo '<hr>';
// 输出:/product/id/3/price/36.9

//  1、从pathinfo切割出独立的单元
$request = explode('/', $uri);
echo '<pre>' . print_r($request, true);
echo '<hr>';

//  2、从pathinfo中解析出操作
$pathinfo['action'] = $request[1];
echo '<pre>' . print_r($pathinfo, true);
echo '<hr>';

//  3、从pathinfo中解析出变量键值对
$values = array_slice($request,2);
echo '<pre>' . print_r($values,true);
echo '<hr>';


$pathinfo['action'] = function (...$arr) use ($pathinfo){
  for ($i=0; $i<count($arr); $i+=2){
      if (isset( $arr[$i+1] )){
          $params[$arr[$i]] = $arr[$i+1];
      }
  }

  $str = '';
  foreach ($params as $key=>$value) {
        $str .= $key . ' = ' .$value .'  ';
  }
  return '方法名:' . $pathinfo['action'] . '参数:' . $str;
};

echo call_user_func_array($pathinfo['action'], $values);


显示效果:

    QQ截图20190809160958.jpg


Correction status:qualified

Teacher's comments:以后, 这样的作业 , 应该有一个总结的, 直接放上代码就提交, 过上一个月, 你自己都不知道写的是什么?
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post