好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

php路由实现 php路由分发

很多站长朋友们都不太清楚php路由实现,今天小编就来给大家整理php路由实现,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 thinkphp 怎样动态配置路由,怎样从数据库调取数据来配置路由 2、 ThinkPHP5静态地址路由和动态路由的区别? 3、 关于thinkphp配置路由无效果的解决方案 4、 php怎样不使用框架的情况下本地模拟url路由,实现localhost/a/id/1这种的访问方式 thinkphp 怎样动态配置路由,怎样从数据库调取数据来配置路由

用这个方法: Route::get('detail-<name>-<id>', 'product/detail');

<name>和<id> 后台自己定义内容

例:域名/detail-xxxx-23

xxxx 从数据库调取数据

ThinkPHP5静态地址路由和动态路由的区别?

静态路由:指的是路由是固定的,是在配置文件里面固定好的。

动态路由:路由带有参数或者使用正则表达式进行匹配。

两者都是在配置文件中进行设置,最大的区别就是静态路由是固定的,一条路由规则匹配一条url,而动态路由就是一条路由匹配多多条url,简单来说。静态路由是一对一,动态路由是一对多。

关于thinkphp配置路由无效果的解决方案

1、打开“config.php”,找到'url_route_on',改为true

2、打开“route.php”,例如:“” 改为“api.hyxx测试数据/user/2”(api.hyxx测试数据为之前设置的二级域名)。那么就在return中写成? ? ?'/user/[:index]' => ['/Index.php/api/user/index/id/2',['method'=>'get']],

例如:“”改为“api.hyxx测试数据”.。就写成? ? ' '=>['/index.php/api',['method'=>'get']],??

里面的请求方式,自己去试探。

php怎样不使用框架的情况下本地模拟url路由,实现localhost/a/id/1这种的访问方式

要实现路由的话你依然需要框架中路由器的支持,因为服务器不能理解你路径的具体含义.所以你需要一个路由器来帮助服务器去处理特定的信息.

不想用现成的就自己写一个简单的,如下:

首先你需要在htdoc下放一个.htaccess来实现单文件入口:

<IfModule?mod_rewrite.c>

????RewriteEngine?On

????RewriteRule?^$?index.php?_url=?[QSA,PT,L]

RewriteCond?%{REQUEST_FILENAME}?!-f

RewriteCond?%{REQUEST_FILENAME}?!-d?

RewriteRule?^(.*)$?index.php?_url=$1?[QSA,L]

</IfModule>

然后自己写路由咯, index.php

<?php

//这里添加你想要的路径

$route?=?array(

????//(:num)表示匹配任何数字,(:any)表示任意字符

'a/id/(:num)'?=>?'TestController:idAction',

'a/any/(:any)'?=>?'TestController:anyAction',

'a/no' =>?'TestController:noAction',

//这里是默认控制器,就是当你访问localhost的时候用

'_DEFAULT_'?=>?'IndexController:indexAction',

);

//简单的Router

class?Router

{

private?$route;

public?function?__construct(array?$route)

{

$this->route?=?$route;

}

public?function?parse($url)

{

if(empty($url))?{

list($controller,?$action)?=?explode(':',?$this->route['_DEFAULT_']);

return?array(

'controller'?=>?$controller,

'action' ?=>?$action,

'params' ?=>?array(),

);

}

$trans?=?array(

':any'?=>?'[^/]+',

':num'?=>?'[0-9]+'

);

foreach($this->route?as?$u?=>?$d)?{

$pattern?=?'#^'?.?strtr($u,?$trans)?.?'$#';

if(preg_match($pattern,?$url,?$params))?{

list($controller,?$action)?=?explode(':',?$d);

array_shift($params);

return?array(

'controller'?=>?$controller,

'action' ?=>?$action,

'params' ?=>?$params,

);

}

}

header("HTTP/1.0?404?Not?Found");

exit('Page?not?found');

}

}

$r?=?new?Router($route);

$arr?=?$r->parse($_GET['_url']);

require($arr['controller']?.?'.php');

//执行控制器的功能

$dispatcher?=?new?$arr['controller'];

call_user_func_array(array($dispatcher,?$arr['action']),?$arr['params']);

?>

控制器1. Testcontroller.php

<?php

class?TestController?

{

public?function?idAction($id)?

{

echo?"Your?int-only?id?is:?{$id}";

}

public?function?anyAction($any_id)

{

echo?"You?any?id?is:?{$any_id}";

}

public?function?noAction()

{

echo?"This?method?take?no?parameter";

}

}

默认控制器: IndexController.php

<?php

class?IndexController

{

public?function?indexAction()

{

echo?"Hello?World!";

}

}

把.htaccess, index.php, TestController.php, IndexController.php放在htdoc里就可以了

关于php路由实现的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于php路由实现 php路由分发的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did197418
更新时间:2023-04-26   阅读:30次

上一篇: php格式化日期字符串 php日期格式转换

下一篇:php请先登录 php登录界面

相关资讯

最新资料更新

  • 1.php变量内存溢出 php 内存限制
  • 2.php用户资料转移 php迁移java
  • 3.php实现权限分配 php权限设计
  • 4.零基础php模板 php0基础教程
  • 5.linux中下载php linux安装php56
  • 6.php接口和抽象类的区别 php抽象函数
  • 7.php压缩上传的图片 php上传图片文件
  • 8.php上传源码教程 php上传下载源码
  • 9.php7性能tu Php性能
  • 10.php文件工具类 php文件处理
  • 11.php时间戳转换字符串 php 时间戳转日期
  • 12.php部署云空间 php云开发
  • 13.极路由安装php环境 极路由安装v2ray
  • 14.php登录保护机制 php保持登录状态
  • 15.php添加字体水印 php设置字体
  • 16.php合并特殊字符 php合并单元格的代码
  • 17.php数据层设计 php数据库操作
  • 18.php判断多个字符串 php判断字符串包含字符
  • 19.链式作用域php php 链式调用
  • 20.php项目任务分配 php任务调度框架

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]