ThinkPHP学习笔记(三)有关项目中URL的路径问题和使用frame搭建页面的
2013-01-21 10:20
609 查看
在thinkphp中有很多自定义的常量路径,具体如下:
登录页面
获取页面:
获取的action:
使用frame搭建页面:不要引入静态的html文件,应该在Action的方法中填写,如下:
indexAction
index.html
left.html
right.html top.html
// echo "<div style='font-weight:normal;color:blue;float:left;width:345px;text-align:center;border:1px solid silver;background:#E8EFFF;padding:8px;font-size:14px;font-family:Tahoma'>^_^ Hello,欢迎使用<span style='font-weight:bold;color:red'>ThinkPHP</span></div>"; //系统常量定义 //去THinkPHP手册中进行查找 // echo "<br>"."网站的根目录地址".__ROOT__." "; // echo "<br>"."入口文件地址".__APP__." "; // echo "<br>"."当前模块地址".__URL__." "; // echo "<br>"."当前url地址".__SELF__." "; // echo "<br>"."当前操作地址".__ACTION__." "; // echo "<br>"."当前模块的模板目录".__CURRENT__." "; // echo "<br>"."当前操作名称".ACTION_NAME." "; // echo "<br>"."当前项目目录".APP_PATH." "; // echo "<br>"."当前项目名称".APP_NAME." "; // echo "<br>"."当前项目的模板目录".APP_TMPL_PATH." "; // echo "<br>"."项目的公共文件目录".APP_PUBLIC_PATH." "; // echo "<br>"."项目的配置文件目录".CONFIG_PATH." "; // echo "<br>"."项目的公共文件目录".COMMON_PATH." "; // //自动缓存与表相关的全部信息 // echo "<br>"."项目的数据文件目录".DATA_PATH." runtime下的data目录"; // echo "<br>"." ".GROUP_NAME.""; // echo "<br>"." ".IS_CGI.""; // echo "<br>"." ".IS_WIN.""; // echo "<br>"." ".LANG_SET.""; // echo "<br>"." ".LOG_PATH.""; // echo "<br>"." ".LANG_PATH.""; // echo "<br>"." ".TMPL_PATH.""; // // //js放入的位置,供多个应用的公共资源 // echo "<br>"." ".WEB_PUBLIC_PATH."";
登录页面
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> 模板路径 __URL__:当前模块的URL地址<br> ../Public 当前模板的public目录<br> __PUBLIC__ 与主目录平级的public目录,供多个项目应用<br> __TMPL__ 项目模板目录<br> __APP__ 项目的Url<br> __ACTION__当前操作的URL地址<br> __SELF__ 当前整个路径的链接 <!-- 可以自定义规则 可以在配置文件中进行修改 进行模板路径替换 --> <form action="__URL__/add" method="post"> <input type="text" name="username"> <input type="submit" value="注册"> </form> </body> </html>
获取页面:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <!-- 可以自定义规则 可以在配置文件中进行修改 进行模板路径替换 --> <!--{$username}--> <!--{$content}--> </body> </html>
获取的action:
<?php // 本类由系统自动生成,仅供测试用途 //最好独立写成php对应的文档 class UserAction extends Action{ //http://localhost/MyThinkPHP/admin.php/index/hello public function index(){ header("Content-Type:text/html; charset=utf-8"); echo "UserAction.index!"; $this->verify(); } public function fuck(){ header("Content-Type:text/html; charset=utf-8"); echo "UserAction.the world!"; $this->verify(); } private function verify(){ $this->display(); echo "<br>UserAction.验证方法"; } public function login(){ $this->assign("content","这是内容啊"); $this->display(); echo "<br>UserAction.验证方法"; } public function add(){ dump($_POST); echo $_POST['username']; $this->assign("username",$_POST['username']); $this->display(); } } ?>
使用frame搭建页面:不要引入静态的html文件,应该在Action的方法中填写,如下:
indexAction
<?php
// 本类由系统自动生成,仅供测试用途
/**
* thinkphp一共有四种路径访问模式,可以在conf文件夹中修改
* 0: 普通模式:http://localhost/MyThinkPHP/admin.php?m=index&a=hello
* 1:pathInfo:
* http://localhost/MyThinkPHP/admin.php/index/hello * http://localhost/MyThinkPHP/admin.php/index/hello * 2:rewrite(伪静态):自己可以写相关的rewrite规则,也可以使用系统提供的rewrite规则
* http://localhost/MyThinkPHP/index/hello * Apache收藏的URL指南中有介绍
* 3:兼容模式:路径访问(防止服务器不支持pathInfo模式)
* http://localhost/MyThinkPHP/admin.php?s=/index/hello *
* 如何在MVC中来显示模板
*
*/
class IndexAction extends Action{
//thinkphp当中模块控制器,动作,与URL路径之间的关系
//我们的 所以动作,都必须经过项目入口文件,只有这样才能找到模块(控制器)
//http://localhost/MyThinkPHP/admin.php/index/index
//访问indexAction中的index方法(默认访问indexAction)
public function index(){
header("Content-Type:text/html; charset=utf-8");
// echo "<div style='font-weight:normal;color:blue;float:left;width:345px;text-align:center;border:1px solid silver;background:#E8EFFF;padding:8px;font-size:14px;font-family:Tahoma'>^_^ Hello,欢迎使用<span style='font-weight:bold;color:red'>ThinkPHP</span></div>"; //系统常量定义 //去THinkPHP手册中进行查找 // echo "<br>"."网站的根目录地址".__ROOT__." "; // echo "<br>"."入口文件地址".__APP__." "; // echo "<br>"."当前模块地址".__URL__." "; // echo "<br>"."当前url地址".__SELF__." "; // echo "<br>"."当前操作地址".__ACTION__." "; // echo "<br>"."当前模块的模板目录".__CURRENT__." "; // echo "<br>"."当前操作名称".ACTION_NAME." "; // echo "<br>"."当前项目目录".APP_PATH." "; // echo "<br>"."当前项目名称".APP_NAME." "; // echo "<br>"."当前项目的模板目录".APP_TMPL_PATH." "; // echo "<br>"."项目的公共文件目录".APP_PUBLIC_PATH." "; // echo "<br>"."项目的配置文件目录".CONFIG_PATH." "; // echo "<br>"."项目的公共文件目录".COMMON_PATH." "; // //自动缓存与表相关的全部信息 // echo "<br>"."项目的数据文件目录".DATA_PATH." runtime下的data目录"; // echo "<br>"." ".GROUP_NAME.""; // echo "<br>"." ".IS_CGI.""; // echo "<br>"." ".IS_WIN.""; // echo "<br>"." ".LANG_SET.""; // echo "<br>"." ".LOG_PATH.""; // echo "<br>"." ".LANG_PATH.""; // echo "<br>"." ".TMPL_PATH.""; // // //js放入的位置,供多个应用的公共资源 // echo "<br>"." ".WEB_PUBLIC_PATH."";
$this->display();
}
public function top(){
$this->display();
}
public function left(){
$this->assign("content","这是内容啊");
$this->display();
}
public function right(){
$this->display();
}
//访问模式:path_Info
//http://localhost/MyThinkPHP/admin.php?m=index&a=hello
//http://localhost/MyThinkPHP/admin.php/index/hello
public function hello(){
header("Content-Type:text/html; charset=utf-8");
echo "这是我自己的方法哦!";
}
/**
* 模板使用
* 大小写一定要注意
*/
public function template(){
//必须在对应的项目的Tpl的default下创建与当前控制器名相同的文件夹Index
//然后html文件名为方法名
//默认分割符方式{$content}
//可以在模板指南针中进行定界符的修改
$this->assign("content","小和尚下山去化斋,老和尚有交代");
$this->display();
//1.同级下面指定新模板
//$this->display("newTemplate");
//2.跨控制器的引用模板(也可以添加分组信息)
//$this->display("分组:User:verify");
//3.跨皮肤引用
// $this->display("test@User:verify");
//4.全路径输出(在项目同级目录新建public文件夹)
//加载文件的位置全以主入口文件来定位
// $this->display("./public/ss.html");
//display参数
// $this->display("位置","utf-8","text/xml");
}
}
?>
index.html
<frameset rows="20%,*"> <!-- 访问的时候一定要用方法,不要用绝对路径 --> <frame src="__URL__/top" name="top"> <frameset rows="20%,*"> <frame src="__URL__/left" name="left"> <frame src="__URL__/right" name="right"> </frameset> </frameset>
left.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title></title> </head> <body> 我是模板我是模板<br> {$content} <!--{$content}--> <br>我是模板我是模板 </body> </html>
right.html top.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title></title> </head> <body> 我是模板我是模板<br> </body> </html>
相关文章推荐
- springmvc页面跳转时的路径问题需要使用/项目名/。。。。。。必须的
- 使用MyEclipse发布Web项目时URL访问路径问题。
- jsp页面中引入文件路径问题的解决方案(使用request获取项目路径)【原创】
- 关于使用Tomcat搭建的Web项目,出现 URL 中文乱码的问题解析
- 使用MyEclipse发布Web项目时URL访问路径问题。
- 有关使用Maven常见问题总结(Eclipse中使用Maven、Maven项目部署到tomcat等问题)
- 使用eclipse搭建项目在tomcat8.0中部署项目的一些问题
- 使用maven搭建springmvc项目解决的项目的一些问题
- 使用IHttpHandler接口实现【不同路径+任意URL后缀重写到指定页面且URL地址不变】(附源码)_AX
- tomcat下web项目里使用EMQ SSL协议证书路径问题
- asp.net 模版爷引用 路径问题,ResolveClientUrl和ResolveUrl使用
- 我是怎么发现并解决项目页面渲染效率问题的(IE调试工具探查器的使用)
- 解决jsp页面使用网络路径访问图片的乱码问题
- 问题2:有关使用 Hexo 和 GitHub 搭建博客,出现 hexo -d 报错如何解决?(windows下)
- 使用SpringMVC的拦截器interceptor解决项目路径问题
- 有关Web项目使用EnterpriseLibrary的Sercurity问题
- Nginx配置React项目Url后直接输入路由路径时报404问题的解决
- jsp中使用 <a>、<img>、<link>、<form>和ajax 标签中的URL相对路径问题
- vue项目使用font-awesome,build后路径问题
- php中iconv函数使用方法,URL传中文乱码问题,html页面跳转问题