好得很程序员自学网
  • 首页
  • 后端语言
    • 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执行router php执行js

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

本文目录一览: 1、 php怎样不使用框架的情况下本地模拟url路由,实现localhost/a/id/1这种的访问方式 2、 php自带服务器命令php -S ..怎么让它在后台运行 3、 【PHP】laravel中获取当前路由名称 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 -S ..怎么让它在后台运行

当你在命令行启动这个Web Server时,如果指定了一个PHP文件,则这个文件会作为一个“路由”脚本,意味着每次请求都会先执行这个脚本。如果这个脚本返回 FALSE ,那么直接返回请求的文件(例如请求静态文件不作任何处理)。否则会把输出返回到浏览器。

Example #1 启动Web服务器 服务于当前目录

$ php -S localhost:8000

Example #2 启动时指定根目录

$ php -S localhost:8000 -t foo/

Example #3 使用路由(Router)脚本

$ php -S localhost:8000 router.php

【PHP】laravel中获取当前路由名称

结论:Route类是必须引入的。所以可以调用静态方法 currentRouteName()。

1 - 为什么不引入Route类也可以运行?

因为Route类是在系统启动时作为全局类进行了注册。

在文件 config/app.php 文件内如下所示:

Route门面此处注册到全局,也就是根命名空间。所以在程序内,直接使用 Route::method() 不会有任何问题。

我们在编程中,对于全局注册的类,也需要通过此方法,添加注册。

2 - 获取当前路由名称的一些方法举例

使用Route类的方法:

Route::getCurrentRoute()->getPath();

或者使用Request类的方法:

\Request::route()->getName();

laravel 5.1 你得这么写:

use Illuminate\Support\Facades\Route;

$currentPath= Route::getFacadeRoot()->current()->uri();

到了5.2版本,就是题主的写法:

Route::currentRouteName();

5.3版本到5.8版本,更加灵活了:

$uri = $request->path();

使用 Request 对象的方法就可以返回。获取路由,路由名称,方法名:

$route = Route::current();

$name = Route::currentRouteName();

$action = Route::currentRouteAction();

到了laravel 7.x 对请求对象 Request 有了更加丰富的特性:

$request->route()->getName();

结语

以上获取路由名的方法,根据不同laravel版本,进行不同的处理。

细节上的不同一定要多加注意。

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

查看更多关于php执行router php执行js的详细内容...

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

上一篇: 包含php给text标签赋值的词条

下一篇:php表单跳转到页面 php跳转页面

相关资讯

最新资料更新

  • 1.phpmp3播放 php播放器本地视频
  • 2.php缓存框架 php 缓存
  • 3.php构造方法重写 php 构造方法
  • 4.PHP画饼图动态 python 动态饼图
  • 5.phpapp页面 php app
  • 6.韩顺平php视频教程下载 韩顺平oracle视频
  • 7.php暂停方法 php 停止执行
  • 8.phpisset多个值 php __set __get
  • 9.php判断多个字符串 php判断字符串包含字符
  • 10.php_syntax的简单介绍
  • 11.php中套js代码 js中写php代码
  • 12.php方法前加 php变量前后加点
  • 13.php连接vertica php连接mysql
  • 14.phpkey排序 php 排序函数
  • 15.登录htmlphp 登录html
  • 16.php获取网页乱码 php网页显示乱码
  • 17.关于winformphp的信息
  • 18.php比较运算符价格 php中用于比较字符串的函数
  • 19.php是否为post的简单介绍
  • 20.php网站后台demo php后端模板

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

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