代码拉取完成,页面将自动刷新
<?php
$str = '/user/{name}/{id:\d<1,10>}';
$param=[];
/**
* @param string $route 路由
* @param $param 路由动态参数
* @param bool $complete 完整匹配 后面加$
* @return string|string[]
*/
function parse($route, &$param, $complete=true){
//判断是否是动态路由
if(strpos($route,'{') === false){
return $route;
}
$isMatched = preg_match_all('/{[^}]+}/', $route, $matches);
if($isMatched){
$replace = [];
foreach ($matches[0] as $match){
$keyArr = explode(':',substr($match,1,-1));
$param[] = $keyArr[0];
$reg = '[^/]';
if(isset($keyArr[1])){ //自定义的
$reg = str_replace(['<','>'],['{','}'],$keyArr[1]);
}
$endStr = str_split ($reg);
if(!in_array(end($endStr),['?','+','*','}'])){
$reg .='+';
}
$replace[] = '('.$reg.')';
}
return str_replace($matches[0],$replace,$route).($complete?'$':'');
}
return $route;
}
//print_r(parse($str,$param));
//print_r($param);
function microtime_float()
{
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
function stringify($url){
}
//$start=microtime_float();
//for ($i=0;$i<1000;$i++){
$reg = '^/user/([^\/]+)/(\d{1,10})$';
$isDisplay = preg_match_all('#'.$reg.'#', '/user/test/12342', $matches);
var_dump($isDisplay,$matches);
if($isDisplay){
array_shift( $matches);
}
var_dump($isDisplay,$matches);
// echo 1;
//}
//$end = microtime_float();
//echo(PHP_EOL." t i m e :" . round( $end - $start ,2) .PHP_EOL);
//
//$dispatcher = FastRoute\simpleDispatcher(function(FastRoute\RouteCollector $r) {
// $r->addRoute('GET', '/users', 'get_all_users_handler');
// // {id} must be a number (\d+)
// $r->addRoute('GET', '/user/{id:\d+}', 'get_user_handler');
// // The /{title} suffix is optional
// $r->addRoute('GET', '/articles/{id:\d+}[/{title}]', 'get_article_handler');
//});
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。