導航:首頁 > 編程語言 > thinkphp包含php文件

thinkphp包含php文件

發布時間:2025-07-17 02:29:24

1. 怎麼在THINKphp中引入PHP文件

你是要在項目,控制器里引入外部PHP文件嗎?
可以用import,或者require
//引入文件
include "aaa.php";//引用文件;只能引用一遍
//引用多個則費勁
include_once("aaa.php");//一次又一次
也可以require ("aa.php");

兩者區別
require:
執行到require()時,只會讀取一次檔案,故常放在程序開頭,檔案引入後PHP會將網頁檔重新編譯,讓引入檔成為原先網頁的一部分。

require() :無條件包含,如果文件不存在,會報出一個fatal error.腳本停止執行
require遇到錯誤時,直接報錯並停止運行程序
include:
執行到include()時,每次皆會讀取檔案,故常用於流程式控制制的區段,如條件判斷或循環中。
include() : 有條件包含,如果文件不存在,會給出一個 warning,但腳本會繼續執行
include遇到錯誤時(引用的文件不存在),PHP只是報錯,但程序會繼續運行下去

2. thinkphp 3.2.2版本中 是怎麼載入 functions.php 的,給解釋一下

ThinkPHP的函數有三類,一類是系統函數,在ThinkPHP目錄下的Common下;一類是項目函數,在項目目錄下的Common目錄中;最後一類是擴展函數。

1、系統函數:包含function.php、common.php和runtime.php三個文件,程序運行時無需手動載入,在編譯過程中自動載入;

2、項目函數:是項目中的Common文件中的Common.php 文件(一般不存在,需自己創建),分組部署時,需要使用 (分組名)/function.php命名。此類函數也是可以直接載入的;

3、擴展函數是指用戶自定義的函數,可以提供給開發者更多的DIY內容,函數名自定義,但是不是在設置了自動載入的情況下是不能自動載入的。

函數的載入:

系統函數和項目函數是不需要載入就能直接使用的,但是擴展函數還是需要載入才能使用的,這里可以有動態和靜態兩種方式載入擴展函數:

1、動態載入:(可以實時生效)

'LOAD_EXT_FILE'=>'USER'//項目中的conf.php

2、手動載入:(個別模板使用)

load(@.user)//載入的就是Common目錄下的user.php,@只本目錄下的

3. thinkphp怎麼部署(thinkphp5部署)

前端vue與後端Thinkphp在伺服器的部署

vue在服務端部署時,我們都知道通過npmrunbuild指令打包好的dist文件,通過http指定是可以直接瀏覽的,Thinkphp通肢局如過域名指向index.php文件才可以瀏覽。要使前端正常調用後端數據,有兩種方法:1、前端跨域調用後端數據,2、前端打包文件部署在後端的伺服器文件夾下(同域)。

web伺服器:apache

一、跨域

在伺服器配置站點:

在路徑/home/www/??下創建test項目文件夾,用來放項目文件。??

找到httpd-vhosts.conf文件配置站點??

前端站點:??

????ServerName?test.test.com??

????DocumentRoot?"/home/www/test/dist"????

????DirectoryIndex?index.html??

後端站點:??

????ServerName?test.testphp.com??

????DocumentRoot?"/home/www/test/php"????

????DirectoryIndex?index.php??

將前端打包歷啟好的dist文件放在/home/www/test/文件夾下,運行可瀏覽,當路徑改變時,刷新會出現404錯誤。此時dist文件下創建一個.htaccess文件,當路徑不存在時,路徑指向能解決此問題。

??RewriteEngine?On??

??RewriteBase?/??

??RewriteRule?^index.html$?-?[L]??

??RewriteCond?%{REQUEST_FILENAME}?!-f??

??RewriteCond?%{REQUEST_FILENAME}?!-d??

??RewriteRule?.?/index.html?[L]??

在/home/www/test文件夾下創建項目根目錄php文件夾,將thinkphp文件放在php下。TP5的入口文件在public文件下,在這將public下的入口文件index.php挪到php文件夾下(個人習慣將入口文件放在項目根目錄),後端綁定Index模塊。

前端調用後端介面,存在跨域,跨域解決方法有好幾種,在這我將在後端php做配置,解決跨域問題,在公用控制器設置跨域配置:

class?Common?extends?Controller??

{??

????public?$param;??

????//?設置跨域訪問??

????public?function?_initialize()??

????{??

????????parent::_initialize();??

????????isset($_SERVER['HTTP_ORIGIN'])???header('Access-Control-Allow-Origin:?'.$_SERVER['HTTP_ORIGIN'])?:?'臘凱'??

????????header('Access-Control-Allow-Credentials:?true');??

????????header('Access-Control-Allow-Methods:?GET,?POST,?PUT,?DELETE,?OPTIONS');??

????????header("Access-Control-Allow-Headers:?Origin,?X-Requested-With,?Content-Type,?Accept,?authKey,?sessionId");??

$param?=??Request::instance()-param();??

$this-param?=?$param;??

????}??

}??

前端調用登錄介面:this.axios.post('',{user:'',password:''})。

(可在webpack.base.conf.js文件下可定義介面:)

二、同域

後端配置同上,公共配置器中的header配置注釋。將前端的dist文件下的所有文件(包含.htaccess),放在php文件夾下。將後端index控制器的index方法的路徑重定向php下的index.html文件:

namespace?appindexcontroller;??

use?thinkController;??

class?Index?extends?Controller??

{??

????public?function?index()?{??

$this-redirect('/index.html');??

????}??

}??

前端調用登錄介面:this.axios.post('/index.php/base/login',{user:'',password:''})

轉自:

thinkphp怎麼部署到ubuntu

1、開啟服務

部分必需使用服務沒有默認開啟,必需開啟後才能正常使用Thinkphpsae引擎,使網站正常工作。必需服務:MySql服務,用於mysql資料庫存儲數據、Strorage服務,用於存儲上傳文件銷肆、Memcache服務,用於存儲Thinkphp緩存、KVDB,用於存儲鍵值數據。根據網站需要開啟相關服務,以上為常見的sae服務。

2、緩存清除

如果開啟了調試輸出trace,然後關閉了,但是網頁還是顯示trace信息,需要把網站的緩存數據刪除後生效,點擊Memcache服務,Memcache狀態下選擇清空即可,如果沒有在sae上部署則是直接刪除相關緩存文件。

3、原生sae服務

由於sae提供原生服務不能與其他環境兼容,為使網站移植性更好,應該盡量少直接使用原耐斗碼生服務,可以選擇使用Thinkphp中相應的方法來實現。sae禁止本地IO,所有直接操作本地IO的函數都失效,需要使用sae其他服務來實現,這點一定要注意。

4、代碼上傳

可以直接上傳代碼包到sae上,可以使用svn來上傳代碼

5、屏蔽index.php

在代碼根目錄下的config.yaml中加入以下代碼即可

handle:

-rewrite:if(!is_dir()!is_file()path~"^(.*)$")goto"index.php/$1"呵呵以後畢竟是電腦的時代,可以自己看一下php語言編程一類的知識昌哪,以後總會有用的,我天天晚上去後盾人看視頻,我覺得不錯的。

如何在lnmp上部署Thinkphp

ThinkPHP的四種URL模式:0(普通迅畝模式);1(PATHINFO模式);2(REWRITE模式);3(兼容模式)

nginx需要PATHINFO模式,但需要更改nginx配置文件讓其支持PATHINFO模式。

系統環境:

系統:CentOS-6.4-x86_64

web伺服器:nginx1.2.7

PHP版本:PHP5.3.17

資料庫版本:MySQL5.5.28

一、安裝LNMP1.0一鍵安裝包:

按照以上版本安裝環境

二、修改配置文件

1.修改php配置文件php.ini,將其中cgi.fix_pathinfo=0,值改為1

重啟php-fpm

2.ssh里執行:

cat拍昌櫻/usr/local/nginx/conf/pathinfo.conf'EOF'

set$real_script_name$fastcgi_script_name;

if($fastcgi_script_name~"(.+?.php)(/.*)"){

set$real_script_name$1;

set$path_info$2;

}

fastcgi_paramSCRIPT_FILENAME$document_root$real_script_name;

fastcgi_paramSCRIPT_NAME$real_script_name;

fastcgi_paramPATH_INFO$path_info;

EOF

再將虛擬主機配置文件里的location~.*.(php|php5)?$替換為:location~.*.php

再在includefcgi.conf;下面添加一行includepathinfo.conf;

重啟nginx

完整的虛擬主機配置文件如下:

server

{

listen80;

server_name;

indexindex.htmlindex.htmindex.php;

root/home/wwwroot/lnmp;

location~.*.php

{

try_files$uri=404;

fastcgi_passunix:/tmp/php-cgi.sock;

fastcgi_indexindex.php;

includefcgi.conf;

includepathinfo.conf;

}

location/status{

stub_statuson;

access_logoff;

}

location~.*.(gif|jpg|jpeg|png|bmp|swf)$

{

expires30d;

}

location~.*.(js|css)?$

{

expires12h;

}

access_log/襲叢home/wwwlogs/lnmp.loglnmp;

}

將ThinkPHP的URL模式設置成PATHINFO。

ThinkPHP就可以在nginx中運行了。

4. thinkphp__ROOT__、__PUBLIC__ 在哪個文件里定義的

thinkphp__ROOT__在ThinkPHP.php中定義;__PUBLIC__在ContentReplaceBehavior.class.php文件中定義。

1、因為__ROOT__ php常量都會在ThinkPHP.php中定義,而thinkphp__ROOT_就屬於__ROOT__ php常量,因此其定義的路徑就是Thinkphp/ThinkPHP.php。

2、__ROOT__、__PUBLIC__ 模板常量這兩者都會在ContentReplaceBehavior.class.php文件中定義,因此其定義的路徑是.class.php。

(4)thinkphp包含php文件擴展閱讀

ThinkPHP提供了靈活的配置功能,採用最有效率的PHP返回數組方式定義,支持慣例配置、項目配置、調試配置和模塊配置,並且會自動生成配置緩存文件,無需重復解析的開銷。對於有些簡單的應用也無需配置任何配置文件,而對於復雜的要求,還可以增加模塊配置文件,另外ThinkPHP的動態配置可以使在開發過程中靈活地調整配置參數。

閱讀全文

與thinkphp包含php文件相關的資料

熱點內容
程序員到阿里技術總監之路 瀏覽:410
怎麼把pdf合在一起 瀏覽:368
直線命令英語 瀏覽:110
編譯系統程序在主存儲器里嗎 瀏覽:903
java開發工作經驗 瀏覽:791
群英伺服器如何 瀏覽:484
php獲取不到cookie 瀏覽:847
備案雲伺服器類型 瀏覽:993
mc伺服器怎麼清空經驗指令 瀏覽:409
拿到伺服器後如何識別是否是蜜罐 瀏覽:770
現在學單片機還有未來嗎 瀏覽:885
程序員電力 瀏覽:371
程序員一定要大專嗎 瀏覽:331
加密門禁讀取軟體 瀏覽:773
編譯二進制有用嗎 瀏覽:438
程序員的必備電腦配置 瀏覽:839
imagebase64java 瀏覽:614
可視化編程的缺點 瀏覽:713
雲伺服器簡稱是什麼 瀏覽:182
pdfmax5 瀏覽:559