當前位置:首頁 » 編程語言 » phpincludephp

phpincludephp

發布時間: 2022-05-02 11:15:24

1. php include路徑問題

dirname(__FILE__)得到的是本文件的文件夾
a.php=>include_once(dirname(__FILE__)."/../b.php");

2. PHP裡面的include是什麼意思連接資料庫的時候才用嗎後面括弧裡面的以.php為結尾的文件

$usernc是獲取到的用戶輸入信息($_POST['usernc']),trim()去除字元串首尾的無意義的字元(空格、製表符(就是鍵盤上的Tab鍵)、換行符" "(unix及類unix系統的換行符)、回車符" "(又稱軟換行符,Mac OS X的換行符))。(另外說一下,windows的換行符是" ",也支持" ",但不支持單獨的" ")


另外,少用雙引號,單引號更快。
雙引號支持在字元串中嵌入變數,也支持更多的字元轉義(" "," "之類的必須用雙引號)。

例如:

<?php
$b='b';
$str="a{$b}c";//相當於$str='a'.$b.'c';但雙引號更慢
?>

單引號僅支持很少的轉義序列。事實上,它只支持

'''//這是一個單引號字元,相當於"'"

'\'//這是一個反斜線

不過,單引號的速度要快得多。


include可以引入一個PHP文件或HTML文件。

如果引入php文件,那麼php會先執行被include的文件中的代碼,再執行後面的代碼。

如果引入html文件,那麼php會直接輸出這個文件。


在本例中,連接資料庫的代碼被放在了conn文件夾下的conn.php中。

所以,在這里包含此文件,就可以連接到資料庫。


參見PHP手冊:include 和 include_once:

http://php.net/manual/zh/function.include.php

http://php.net/manual/zh/function.include-once.php


舉個例子:

inc.php

<?php
echo'a';
?>

b.php

<?php
echo'm';

//include允許相對路徑與絕對路徑,這里是相對路徑
//PHP手冊推薦在使用include和require時不使用括弧
//因為它們是語法結構(就像if,echo之類的),而不是函數
include'inc.php';
echo'n';
?>

你運行b.php,將會輸出:

man

加不加_once都可以,不過建議你不要加,這樣運行起來會很慢(慢了好幾倍)。

include_once主要是為了防止某些函數被重復定義(多次包含)而報錯。

這應該用合理的代碼規劃來避免,而不是使用_once後綴。

雖然性能問題在小程序中不會得到太大體現,但是在一些復雜的項目中,差勁的代碼導致的性能問題一定會讓你抓狂。


你結合microtime()函數來測試一下,就可以看出來了。

代碼如下:

<?php
//獲取代碼運行的時間
$t=microtime(TRUE);

//這里放上你要測試的代碼

//輸出運行時間,代碼以毫秒為單位
//直接echo很可能會輸出為科學計數法,看起來不直觀
printf('%f',microtime(TRUE)-$t);
unset($t);//變數用完就注銷是個好習慣
?>

另外,如果文件不存在,include會產生警告。

還有一個函數require,與include類似,不過如果文件不存在會產生錯誤。require比include快一些,因為include有返回值,而require沒有。同樣,最好不要使用require_once。


參見PHP手冊:require 和 require_once:

http://php.net/manual/zh/function.require.php

http://php.net/manual/zh/function.require-once.php


另外,我建議您不要再看這本書了,這本書的代碼就好像是一個初學者寫的一樣,根本不符合規范,而且會有很大的性能問題。

例如:

(1)數組鍵名沒有加上引號。php會首先查找是否存在以這個鍵名為名稱的常量。如果存在,這段代碼就很可能會出問題。如果不存在,php沒有辦法,只能返回這個字元串。在這查找的過程中,就會造成相當大的性能損失。

(2)大量使用雙引號,而且還沒有正確利用雙引號的特性。

(3)沒有過濾用戶輸入,存在sql注入漏洞。應該把單引號轉義。

應該改為:

//適用於大多數資料庫,不適用於Sybase
$usernc=addslashes(trim($_POST['usernc']));
//或者
$usernc=mysql_real_escape_string(trim($_POST['usernc']));//僅適用於MySQL

(4)既然有了$_POST['usernc'],為什麼還要再用$usernc呢?難道就為了少輸幾個字元?浪費伺服器內存資源。伺服器內存資源是非常寶貴的,不應該這樣浪費。每執行一次PHP程序都會創建一個新的操作系統線程,並分配2MB的配套內存。使用不當,可能會造成內存泄露(Out of Memory)!如果是在大型網站上,更應注意此類問題。

(5)既然只是判斷一條數據是否存在(用戶名是否存在),就應該在SQL語句的末尾加上

LIMIT1

否則,會嚴重影響MySQL性能。不加的話,MySQL找到一條數據後,還會繼續查找符合條件的數據(即使並不存在)。如果這個數據表的數據量非常大,那浪費的時間是相當恐怖的!

而加上後,MySQL 搜索到一條數據後就會停止,不會浪費時間。

(6)依賴JavaScript中的history.back()是不對的。如果用戶沒有保存歷史記錄(一些瀏覽器有無痕瀏覽模式,例如Firefox,Chrome等),或者用戶剛好將歷史記錄清除了,這條語句就會失效。最好的辦法是新建一個session變數,例如$_SESSION['history'],將歷史記錄保存在裡面就可以了。再說本例中,程序是應該知道應該跳轉到哪個頁面的(不是有getuserinfo.php嗎?)。

應該直接302重定向。可以使用下面的代碼:

//把「網址」替換為相應的URL就行了
//注意:是從http://一直到URL最後
header('Location:網址');

注意,這之前不能有輸出。或者,在程序最開始的php文件上方加上:

ob_start();

這樣就可以了。


以上這些問題都是應該避免的。

3. php中include('上級目錄文件');

當前文件所在目錄引用方法為:
<?php
include('test.php');
?>
或者:
<?php
include('./test.php');
?>
上級目錄引用方法:
<?php
include('../test.php');
?>
上上級引用方法:
<?php
include('../../test.php');
?>

總結:

其中 . 表示當前目錄 ..表示上級目錄 /表示目錄分隔符

4. PHP中include和require的區別詳解

require()語句的性能與include()相類似,都是包括並運行指定文件。不同之處在於:對include()語句來說,在執行文件時每次都要進行讀取和評估;而對於require()來說,文件只處理一次(實際上,文件內容替換require()語句)。這就意味著如果可能執行多次的代碼,則使用require()效率比較高。另外一方面,如果每次執行代碼時是讀取不同的文件,或者有通過一組文件迭代的循環,就使用include()語句。 require的使用方法如:require("myfile.php"),這個語句通常放在PHP腳本程序的最前面。PHP程序在執行前,就會先讀入require()語句所引入的文件,使它變成PHP腳本文件的一部分。include使用方法和require一樣如:include("myfile.php"),而這個語句一般是放在流程式控制制的處理區段中。PHP腳本文件在讀到include()語句時,才將它包含的文件讀取進來。這種方式,可以把程式執行時的流程簡單化。 incluce在用到時載入 require在一開始就載入 _once後綴表示已載入的不載入 PHP系統在載入PHP程序時有一個偽編譯過程,可使程序運行速度加快。但incluce的文檔仍為解釋執行。include的文件中出錯了,主程序繼續往下執行,require的文件出錯了,主程序也停了,所以包含的文件出錯對系統影響不大的話(如界面文件)就用include,否則用require。 require()和include()語句是語言結構,不是真正的函數,可以像php中其他的語言結構一樣,例如echo()可以使用echo("ab")形式,也可以使用echo "abc"形式輸出字元串abc。require()和include()語句也可以不加圓括弧而直接加參數。 include_once()和require_once()語句也是在腳本執行期間包括運行指定文件。此行為和include()語句及require()類似,使用方法也一樣。唯一區別是如果該文件中的代碼已經被包括了,則不會再次包括。這兩個語句應該用於在腳本執行期間,同一個文件有可能被包括超過一次的情況下,確保它只被包括一次,以避免函數重定義以及變數重新賦值等問題。 2、詳情 2.1 報錯 include引入文件的時候,如果碰到錯誤,會給出提示,並繼續運行下邊的代碼。 require引入文件的時候,如果碰到錯誤,會給出提示,並停止運行下邊的代碼。 用例子來說話,寫兩個php文件,名字為test-include.php和test-require.php,注意相同的目錄中,不要存在一個名字是test-nothing.php的文件。 test-include.php <?php include 'test-nothing.php'; echo 'abc'; ?> test-require.php <?php require 'test-nothing.php'; echo 'abc'; ?> 瀏覽http://localhost/test-include.php,因為沒有找到test-nothing.php文件,我們看到了報錯信息,同時,報錯信息的下邊顯示了abc,你看到的可能是類似下邊的情況: Warning: include(test-nothing.php) [function.include]: failed to open stream: No such file or directory in D:\www\test-include.php on line 2 Warning: include() [function.include]: Failed opening 'test-nothing.php' for inclusion (include_path='.;C:\php5\pear') in D:\www\test-include.php on line 2 abc 瀏覽http://localhost/test-require.php,因為沒有找到test-nothing.php文件,我們看到了報錯信息,但是,報錯信息的下邊沒有顯示abc,你看到的可能是類似下邊的情況: Warning: require(test-nothing.php) [function.require]: failed to open stream: No such file or directory in D:\www\test-require.php on line 2 Fatal error: require() [function.require]: Failed opening required 'test-nothing' (include_path='.;C:\php5\pear') in D:\www\test-require.php on line 2 2.2 條件引用 include()與require()的功能相同,用法上卻有一些不同,include()是有條件包含函數,而require()則是無條件包含函數。 例如下面例子,如果變數$somg為真,則將包含文件somefile.php: if($some){ include 'somefile.php'; } 但無論$some取何值,下面的代碼將把文件somefile.php包含進文件里: if($something){ require 'somefile.php'; } 下面的例子充分說明了這兩個函數之間的不同: $i = 1; while ($i < 3) { require "somefile.$i.php"; $i++; } 可以從以上這段代碼中看出,每一次循環的時候,程序都將把同一個文件包含進去,很顯然這不是我們想要的,可以看出這段代碼希望在每次循環時,將不同的文件包含進來,如果要完成這個功能,只能使用函數include(): $i = 1; while ($i < 3) { include "somefile.$i.php"; $i++; } 2.3 文件引用方式 include()執行時需要引用的文件每次都要進行讀取和評估,require()執行時需要引用的文件只處理一次(實際上執行時需要引用的文件內容替換了require()語句)可以看出若有包含這些指令之一的代碼和可能執行多次的代碼,則使用require()效率比較高,若每次執行代碼時相讀取不同的文件或者有通過一組文件疊代的循環,就使用include(),可以給想要包括的文件名設置變數,當參數為 include()時使用這個變數。

5. 一個PHP文件能多次使用include包涵其他PHP文件嗎

可以包含多次,需要注意的是當一個文件被包含時,其中所包含的代碼繼承了 include 所在行的變數范圍。從該處開始,調用文件在該行處可用的任何變數在被調用的文件中也都可用。不過所有在包含文件中定義的函數和類都具有全局作用域。

另外include是一個特殊的語言結構,其參數不需要括弧。在比較其返回值時要注意

如果在包含文件中定義有函數,這些函數不管是在 return 之前還是之後定義的,都可以獨立在主文件中使用。如果文件被包含兩次,PHP 5 發出致命錯誤因為函數已經被定義,但是 PHP 4 不會對在 return 之後定義的函數報錯。推薦使用 include_once 而不是檢查文件是否已包含並在包含文件中有條件返回。

說明:

include語句包含並運行指定文件。

6. include的php語句

include()語句包含並運行指定文件。
以下文檔也適用於require()。這兩種結構除了在如何處理失敗之外完全一樣。include()產生一個警告而require()則導致一個致命錯誤。換句話說,如果想在遇到丟失文件時停止處理頁面就用require()。include()就不是這樣,腳本會繼續運行。同時也要確認設置了合適的 include_path。注意在 php 4.3.5 之前,包含文件中的語法錯誤不會導致程序停止,但從此版本之後會。
尋找包含文件的順序先是在當前工作目錄的相對的 include_path 下尋找,然後是當前運行腳本所在目錄相對的 include_path 下尋找。例如 include_path 是 .,當前工作目錄是 /www/,腳本中要 include 一個 include/a.php 並且在該文件中有一句 include b.php,則尋找 b.php 的順序先是 /www/,然後是 /www/include/。如果文件名以 ../ 開始,則只在當前工作目錄相對的 include_path 下尋找。
當一個文件被包含時,其中所包含的代碼繼承了 include 所在行的變數范圍。從該處開始,調用文件在該行處可用的任何變數在被調用的文件中也都可用。不過所有在包含文件中定義的函數和類都具有全局作用域。
例子 16-5. 基本的include()例子
vars.php<?php$color = 'green';$fruit = 'apple';?>test.php<?phpecho A $color $fruit; // Ainclude 'vars.php';echo A $color $fruit; // A green apple?> 如果 include 出現於調用文件中的一個函數里,則被調用的文件中所包含的所有代碼將表現得如同它們是在該函數內部定義的一樣。所以它將遵循該函數的變數范圍。
例子 16-6. 函數中的包含
<?phpfunction foo(){ global $color; include 'vars.php'; echo A $color $fruit;}/* vars.php is in the scope of foo() so * * $fruit is NOT available outside of this * * scope. $color is because we declared it * * as global. */foo(); // A green appleecho A $color $fruit; // A green?>例子 16-7. 通過 HTTP 進行的include()
<?php/* This example assumes that is configured to parse .php * * files and not .txt files. Also, 'Works' here means that the variables * * $foo and $bar are available within the included file. */// Won't work; file.txt wasn't handled by as phpinclude '/file.txt?foo=1&bar=2';// Won't work; looks for a file named 'file.php?foo=1&bar=2' on the// local filesystem.include 'file.php?foo=1&bar=2';// Works.include '/file.php?foo=1&bar=2';$foo = 1;$bar = 2;include 'file.txt'; // Works.include 'file.php'; // Works.?>相關信息參見使用遠程文件,fopen()和file()。
因為include()和require()是特殊的語言結構,在條件語句中使用必須將其放在語句組中(花括弧中)。
例子 16-8. include() 與條件語句組
<?php// This is WRONG and will not work as desired.if ($condition) include $file;else include $other;// This is CORRECT.if ($condition) { include $file;} else { include $other;}?>處理返回值:可以在被包括的文件中使用return()語句來終止該文件中程序的執行並返回調用它的腳本。同樣也可以從被包含的文件中返回值。可以像普通函數一樣獲得 include 調用的返回值。不過這在包含遠程文件時卻不行,除非遠程文件的輸出具有合法的 php 開始和結束標記(如同任何本地文件一樣)。可以在標記內定義所需的變數,該變數在文件被包含的位置之後就可用了。
因為include()是一個特殊的語言結構,其參數不需要括弧。在比較其返回值時要注意。
例子 16-9. 比較 include 的返回值
<?php// won't work, evaluated as include(('vars.php') == 'OK'), i.e. include('')if (include('vars.php') == 'OK') { echo 'OK';}// worksif ((include 'vars.php') == 'OK') { echo 'OK';}?>注:在 php 3 中,除非是在函數中調用否則被包含的文件中不能出現 return。在此情況下return()作用於該函數而不是整個文件。
例子 16-10.include()和return()語句
return.php<?php$var = 'php';return $var;?>noreturn.php<?php$var = 'php';?>testreturns.php<?php$foo = include 'return.php';echo $foo; // prints 'php'$bar = include 'noreturn.php';echo $bar; // prints 1?>$bar 的值為 1 是因為 include 成功運行了。注意以上例子中的區別。第一個在被包含的文件中用了return()而另一個沒有。如果文件不能被包含,則返回FALSE並發出一個 E_WARNING 警告。
如果在包含文件中定義有函數,這些函數可以獨立於是否在return()之前還是之後在主文件中使用。如果文件被包含兩次,php 5 發出致命錯誤因為函數已經被定義,但是 php 在return()之後不會抱怨函數已定義。推薦使用include_once()而不是檢查文件是否已包含並在包含文件中有條件返回。
另一個將 php 文件「包含」到一個變數中的方法是用輸出控制函數結合include()來捕獲其輸出,例如:
例子 16-11. 使用輸出緩沖來將 php 文件包含入一個字元串
<?php$string = get_include_contents('somefile.php');function get_include_contents($filename) { if (is_file($filename)) { ob_start(); include $filename; $contents = ob_get_contents(); ob_end_clean(); return $contents; } return false;}?>要在腳本中自動包含文件,參見 php.ini 中的 auto_prepend_file 和 auto_append_file 配置選項。
注:由於這是一個語言結構而非函數,因此它無法被變數函數調用。

7. php include()的具體用法

nclude語句會獲取指定文件中存在的所有文本/代碼/標記,並復制到使用 include 語句的文件中。

語法:

<?phpinclude'filename';?>

require語句和include的功能是相同的,只是在錯誤處理方面不一樣。

require 會生成致命錯誤(E_COMPILE_ERROR)並停止腳本。

include 只生成警告(E_WARNING),並且腳本會繼續。

(7)phpincludephp擴展閱讀:

php語句

include()語句包含並運行指定文件。

以下文檔也適用於require()。這兩種結構除了在如何處理失敗之外完全一樣。include()產生一個警告而require()則導致一個致命錯誤。

換句話說,如果想在遇到丟失文件時停止處理頁面就用require()。include()就不是這樣,腳本會繼續運行。同時也要確認設置了合適的 include_path。注意在 php 4.3.5 之前,包含文件中的語法錯誤不會導致程序停止,但從此版本之後會。

8. PHP裡面include是什麼意思啊

include包含文件,一般用於引用資料庫連接文件和網站一些共用的文件如:
include("conn.php"); 寫上這一句就在這個文件中載入了conn.php文件裡面的代碼了。

9. php include路徑引用

只有與當前php文件同域的文件才能被 include 進來,所以 include 的參數是不能帶域名的,只能是本地file的實際路徑。
如果允許把其他網站的文件include到自己的文件中,那就太沒有安全性了,網路、騰訊、阿里的技術和數據就成為公開化的了。

熱點內容
wemall微商城源碼 發布:2025-05-14 22:15:20 瀏覽:803
隆地優選交易密碼是什麼 發布:2025-05-14 21:53:23 瀏覽:93
強酸強鹼存儲櫃 發布:2025-05-14 21:45:16 瀏覽:563
車輛參數配置包括什麼 發布:2025-05-14 21:31:03 瀏覽:163
怎麼引入安卓項目 發布:2025-05-14 21:26:39 瀏覽:824
游戲輔編程 發布:2025-05-14 21:18:49 瀏覽:687
三菱plc一段二段密碼什麼意思 發布:2025-05-14 21:17:16 瀏覽:528
電腦開機密碼忘記了怎麼破解 發布:2025-05-14 21:09:40 瀏覽:57
pythondict格式 發布:2025-05-14 21:09:38 瀏覽:886
落葉片拍攝腳本 發布:2025-05-14 20:40:49 瀏覽:800