Heim >Backend-Entwicklung >PHP-Tutorial > ThinkPHP学习笔记(三)有关项目中URL的路径有关问题和使用frame搭建页面的

ThinkPHP学习笔记(三)有关项目中URL的路径有关问题和使用frame搭建页面的

WBOY
WBOYOriginal
2016-06-13 12:55:46798Durchsuche

ThinkPHP学习笔记(三)有关项目中URL的路径问题和使用frame搭建页面的


在thinkphp中有很多自定义的常量路径,具体如下:

//        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."";

登录页面



<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>


模板路径
__URL__:当前模块的URL地址<br>
../Public 当前模板的public目录<br>
__PUBLIC__ 与主目录平级的public目录,供多个项目应用<br>
__TMPL__   项目模板目录<br>
__APP__ 项目的Url<br>
__ACTION__当前操作的URL地址<br>
__SELF__ 当前整个路径的链接

<!-- 
	可以自定义规则
	可以在配置文件中进行修改
	进行模板路径替换
 -->

获取页面:



<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>


<!-- 
	可以自定义规则
	可以在配置文件中进行修改
	进行模板路径替换
 -->
<!--{$username}-->
<!--{$content}-->



获取的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>";
        //系统常量定义
        //去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



<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>


我是模板我是模板<br>
{$content}
<!--{$content}-->
<br>我是模板我是模板


right.html  top.html



<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>


我是模板我是模板<br>




Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn