日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

thinkphp 第二节

發布時間:2024/6/21 php 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 thinkphp 第二节 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  thinkphp使用了同意文件入口,我們對該網站的所有請求都會經過該入口文件,然后tp會分析URL中的參數的含義,然后解析當前請求的模塊和操作。

  tp會分析URL,然后根據該URL找到相應的Controller的響應方法

  thinkphp的四種url模式

1:普通模式

2:PATHINFO模式:默認模式

3:REWRITE模式:重寫模式

4:兼容模式

*******PATHINFO模式:默認模式********

他的特點:url中分隔符比較統一,便于搜索引擎抓取頁面。

  url:localhost:8080/demo/index.php/Home/Index/xin,index.php 是它的入口文件,其后的第一個參數表示模塊,第二個表示控制器,第三個表示方法名

  下面我們修改該模塊的默認的分隔符,我們可以在Application目錄下的Common下的Conf下

的config.php 文件中添加如下一項:

<?php

return array(

  //修改默認的url分隔符

  ‘URL_PATHINFO_DEPR’=>'-',

);

?>

那么當我們輸入

localhost:8080/demo/index.php/HOME-INdex-xin

就相當于我們剛剛輸入的

localhost:8080/demo/index.php/HOME/INdex/xin

其他URL模式:

1:所謂的普通模式,就是我們最原始的是用?和& 以及=來傳值的模式,不建議使用

2:所謂的重寫模式,比如我們需要用如下網址訪問

http://www.5idev.com/index.php/Index/insert

但開啟重寫模式后,就可以用下面的方式直接訪問

http://www.5idev.com/Index/insert

更改 Apache httpd.conf 配置文件

一、加載了 mod_rewrite.so

 確認加載了 mod_rewrite.so 模塊(將如下配置前的 # 號去掉):

LoadModule rewrite_module modules/mod_rewrite.so

二.在省略掉inde.php的同一級目錄下添加一個.htaccess 文件

內容為下:
<IfModule rewrite_module>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>

三:

  AllowOverride none 要改成all

四:注意改完后要重啟apache

參考網址:

http://sjolzy.cn/ThinkPHP-remove-the-indexphp-url.html

http://www.myexception.cn/h/937874.html

url配置參考手冊:

http://doc.thinkphp.cn/manual/url_mode.html

********來自tp的配置*********

我們可以在thinkphp的conf目錄下發現convention.php

url 配置:

'URL_CASE_INSENSITIVE' => true, // 默認false 表示URL區分大小寫 true則表示不區分大小寫
'URL_MODEL' => 1, // URL訪問模式,可選參數0、1、2、3,代表以下四種模式:
// 0 (普通模式); 1 (PATHINFO 模式); 2 (REWRITE 模式); 3 (兼容模式) 默認為PATHINFO 模式
'URL_PATHINFO_DEPR' => '/', // PATHINFO模式下,各參數之間的分割符號
'URL_PATHINFO_FETCH' => 'ORIG_PATH_INFO,REDIRECT_PATH_INFO,REDIRECT_URL', // 用于兼容判斷PATH_INFO 參數的SERVER替代變量列表
'URL_REQUEST_URI' => 'REQUEST_URI',//獲取當前頁面地址的系統變量

*********控制器*************

1:我們新建一個自己的控制器,取名為:xinController.class.php

2:xin 是我們起的控制器名,這里的controller這個后綴是必須加的,他用于tp系統 查找該控制器,否則tp系統無法尋找他,而后面的.class.php 則說明該php文件是一個類文件

3:其實這個控制器的實現方式,仍然可以在里面使用echo或者var_dump 等輸出函數,當然它也可以調用模板

范例:

<?php
namespace Home\Controller;
use Think\Controller;
class XinController extends Controller{
public function index(){
$this->show('這是我的天下,我怕誰');
}
public function show($name,$age){
var_dump($_GET);
echo "我叫:$name","年齡:$age";
}
}

?>

在瀏覽器上輸入:localhost:8080/demo/Home/Xin/show/name/張三/age/21

效果為:

第三節:使用模板

*************模板位置******************

Application目錄下的Home文件夾下的View文件夾

**************配置文件*************

在thinkphp目錄下的config目錄下的convention.php文件,針對文本的配置項

?

TMPL_CONTENT_TYPE' => 'text/html', // 默認模板輸出類型
'TMPL_ACTION_ERROR' => THINK_PATH.'Tpl/dispatch_jump.tpl', // 默認錯誤跳轉對應的模板文件
'TMPL_ACTION_SUCCESS' => THINK_PATH.'Tpl/dispatch_jump.tpl', // 默認成功跳轉對應的模板文件
'TMPL_EXCEPTION_FILE' => THINK_PATH.'Tpl/think_exception.tpl',// 異常頁面的模板文件
'TMPL_DETECT_THEME' => false, // 自動偵測模板主題
'TMPL_TEMPLATE_SUFFIX' => '.html', // 默認模板文件后綴
'TMPL_FILE_DEPR' => '/', //模板文件CONTROLLER_NAME與ACTION_NAME之間的分割符
// 布局設置
'TMPL_ENGINE_TYPE' => 'Think', // 默認模板引擎 以下設置僅對使用Think模板引擎有效
'TMPL_CACHFILE_SUFFIX' => '.php', // 默認模板緩存后綴
'TMPL_DENY_FUNC_LIST' => 'echo,exit', // 模板引擎禁用函數
'TMPL_DENY_PHP' => false, // 默認模板引擎是否禁用PHP原生代碼
'TMPL_L_DELIM' => '{', // 模板引擎普通標簽開始標記
'TMPL_R_DELIM' => '}', // 模板引擎普通標簽結束標記
'TMPL_VAR_IDENTIFY' => 'array', // 模板變量識別。留空自動判斷,參數為'obj'則表示對象
'TMPL_STRIP_SPACE' => true, // 是否去除模板文件里面的html空格與換行
'TMPL_CACHE_ON' => true, // 是否開啟模板編譯緩存,設為false則每次都會重新編譯

****************創建一個模板并顯示**************

在application->Home->View 寫一個index.html

<html>

<head>

<title>hello {$name}</title>

</head>

<body>

HELLO,{$name}
</body>

</html>

注意:{$name}之間不要加任何空格,否則會解析錯誤

然后再Application->Home->StarController.class.php文件

<?php
namespace Home\Controller;
use Think\Controller;
class StarController extends Controller{
public function index(){
$this->assign("name","yanran");
$this->display();
}
}

?>

最后在瀏覽器中輸入地址:localhost:8080/demo/index.php/Home/star/index

********模板的一些語法********

1:對于數組,我們在控制器和模板中的寫法如下:

//在控制器中

$data['name']='yanran';

$data['age']='21';

$this->assign('data',$data);

//在模板中

{$data.name}

{$data.age}

或者說

{$data['name']}

{$data['age']}

例如:

starController.class.php

index.html

結果顯示:

2:對于對象,

//對象的第一種寫法

{$data:name}

{$data:age}

//對象的第二種寫法

{$data->name}

{$data->age}

3:循環表示:

  foreach或者volist

<foreach name="list" item="vo">

{$key}|{$vo.id}:{$vo.name}

</foreach>

其中:name 表示數據源,而item表示循環變量 ,$key表示索引,即輸出到了第幾個

范例:

?

在view->star 下,新建一個show.html

預覽效果得到:

?

?

?

?

轉載于:https://www.cnblogs.com/yanran/p/4925152.html

總結

以上是生活随笔為你收集整理的thinkphp 第二节的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。