日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

淺談P教程之十大經(jīng)驗(yàn)技巧(3)_PHP教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:如何在PHP中實(shí)現(xiàn)文件的上傳功能
PHP同樣支持上傳文件的功能,但并不是所有支持PHP的網(wǎng)站都支持此功能,特別是免費(fèi)的網(wǎng)站。 實(shí)現(xiàn)上傳,首先要在HTML上加入上傳文件的FORM>表格。 form method=post action=upload.php ENCTYPE=multipart/form-data> input type=file name=upload_file> inp

三、文件是我們的朋友

無論你在開發(fā)的網(wǎng)站規(guī)模的大小,都應(yīng)該意識(shí)到代碼重用的重要性,無論這些代碼是HTML、還是PHP代碼。例如,你必須至少每年改變一次包含版權(quán)信息的頁腳,如果你的網(wǎng)站含有1000個(gè)頁面,每年修改一次也是個(gè)很煩人的事兒。

在PHP中,至少有幾個(gè)函數(shù)可以幫助你實(shí)現(xiàn)代碼重用的目的,所使用的函數(shù)取決于你所重用的代碼,主要的函數(shù)有:

* include() and include_once()

* require() and require_once()

include()函數(shù)包含并對(duì)給定的文件進(jìn)行計(jì)算,例如:

include('/home/me/myfile');

在include文件中的任何代碼都在include()出現(xiàn)的代碼范圍內(nèi)執(zhí)行,你可以通過聯(lián)合使用include()和fopen()在自己的服務(wù)器上包含靜態(tài)文件,在另一臺(tái)服務(wù)器上包含目標(biāo)文件。

include_once()的功能與include()相同,二者之間的區(qū)別在于它會(huì)檢查一個(gè)文件中的代碼是否已經(jīng)包含在現(xiàn)有的腳本中,如果代碼已經(jīng)存在,則不會(huì)再次包含它。

require()函數(shù)用給定文件的內(nèi)容取代它本身,這一代替過程發(fā)生在PHP引擎編譯代碼期間,而不是在執(zhí)行期間進(jìn)行,它不象include()那樣會(huì)首先進(jìn)行計(jì)算。require()函數(shù)更多地用在靜態(tài)元素中,而include()更多地用于動(dòng)態(tài)元素中。與include_once()類似的是,require_once()將首先檢查是否已經(jīng)插入給定的代碼,如果代碼已經(jīng)存在,就不再插入了。

為也了解其內(nèi)容,在版權(quán)信息、靜態(tài)文字和其他不包含變量的元素或者依賴其他正在執(zhí)行的腳本的元素中我更趨向于使用require函數(shù)。例如:

<HTML>

<HEAD><TITLE>Something</TITLE></HEAD>

<BODY>

[a lot of content]

<?

// insert copyright

require('/home/me/mycopyright');

?>

</BODY>

</HTML>

另一方面,我經(jīng)常在文件的開始使用include()來控制許多的函數(shù):

<?

//得到函數(shù)庫

include('/home/me/myfunctions');

// do PHP things with my functions ?>

<HTML>

<HEAD><TITLE>Something</TITLE></HEAD>

<BODY>

[a lot of content]

</BODY>

</HTML>

下一個(gè)問題就該是“include和require文件在哪里?”,對(duì)這個(gè)問題簡(jiǎn)單的回答是,“系統(tǒng)中的任意地方。”如果你的代碼中包含有帶有用戶名和口令的數(shù)據(jù)庫連接,你肯定不會(huì)將它們都放在文檔根目錄中向所有的人都開放。

included或required文件可以在系統(tǒng)上的任何地方,只要PHP運(yùn)行的系統(tǒng)上的用戶可以訪問這些文件即可,你可以使這些文件具有任何后綴,或者不使用后綴。

使用include()和require()對(duì)在網(wǎng)站中的元素進(jìn)行具體化是一種普遍的現(xiàn)象,并在需要對(duì)網(wǎng)站升級(jí)時(shí),給你帶來很大的方便。

四、PHP和文件系統(tǒng)的維護(hù)

PHP中有許多與文件系統(tǒng)有關(guān)的函數(shù),這些函數(shù)不僅可以打開文件,還可以顯示目錄中的內(nèi)容、移動(dòng)文件和其他一些功能,許多人甚至用PHP開發(fā)基于互聯(lián)網(wǎng)的文件資源管理器。

關(guān)于文件路徑的解釋:在Windows中,可以在路徑中使用/和\符號(hào),而在其他的操作系統(tǒng)中只能使用/符號(hào)。出于一致性的緣故,我們統(tǒng)一使用/符號(hào)。

下面的腳本樣例可以顯示一個(gè)目錄清單,注釋已經(jīng)包含在代碼中:

<? /*把要讀取的目錄的全路徑名存入一個(gè)名字為$dir_name的變量中。 */

$dir_name = "/home/me/";

/* 創(chuàng)建一個(gè)句柄,其值是打開一個(gè)給定目錄的結(jié)果*/

$dir = opendir($dir_name);

/* 建立一個(gè)文字塊,用以放置列表元素(文件名字)*/

$file_list = "<ul>";

/* 使用一個(gè)while語句,讀取已經(jīng)打開的目錄中的所有元素,如果文件的名字不是“.”或“..”,則顯示列表中的名字*/

while ($file_name = readdir($dir)) {

if (($file_name != ".") && ($file_name != "..")) {

$file_list .= "<li>$file_name";

}

}

$file_list .= "</ul>";

/*關(guān)閉打開的目錄,結(jié)束PHP模塊*/

closedir($dir);

?>

<!-- Start your HTML -->

<HTML>

<HEAD>

<TITLE>Directory Listing</TITLE>

</HEAD>

<BODY>

<!-- Use PHP to print the name of the directory you read -->

<P>Files in: <? echo "$dir_name"; ?></p>

<!-- Use PHP to print the directory listing -->

<? echo "$file_list"; ?>

</BODY>

</HTML>

好了,我們已經(jīng)得到了一個(gè)目錄清單。需要注意的是,要讀取一個(gè)文件(稍后我們將進(jìn)行講解)或目錄的內(nèi)容,PHP運(yùn)行的系統(tǒng)上的用戶必須至少有讀取文件的權(quán)限。

下面是一個(gè)如何拷貝文件的例子:

<? /*把你要拷貝的原文件的全路徑賦給一個(gè)名字為$original的變量中,把拷貝的文件的全路徑賦予一個(gè)名字為$copied的變量中*/

$original = "/home/me/mydatabasedump";

$copied = "/archive/mydatabasedumo_1010";

/* 使用copy()函數(shù)拷貝原始文件,如果拷貝沒有完成則會(huì)顯示一個(gè)錯(cuò)誤信息*/

@copy($original, $copied) or die("Couldn't copy file.");

?>

這個(gè)例子是一個(gè)文件備份系統(tǒng)的原型。在這段腳本運(yùn)行時(shí),它把文件拷貝到一個(gè)不同的位置進(jìn)行保存。稍微修改一下守護(hù)程序,就可以在一天中你指定的時(shí)刻執(zhí)行它,而無需用戶的干預(yù)。

假定你在系統(tǒng)上安裝了Lynx,可以創(chuàng)建一個(gè)守護(hù)程序的條目訪問這個(gè)文件,訪問這個(gè)文件會(huì)運(yùn)行這個(gè)腳本并建立一個(gè)拷貝文件,下面的例子將在上午5點(diǎn)鐘運(yùn)行這個(gè)腳本,然后關(guān)閉Lynx:

0 5 * * * [username] lynx -dump http://localhost/copyfile.php 1>/dev/null 2>&1

如果運(yùn)行的是CGI版本的PHP,可以跳過Lynx部分,而直接調(diào)用二進(jìn)制文件:

0 5 * * * [username] php /path/to/copyfile.php 1>/dev/null 2>&1

五、豐富的數(shù)組函數(shù)

PHP 4.0中新添加了30個(gè)與組數(shù)有關(guān)的函數(shù),其中一些常見的函數(shù)可以判斷一個(gè)數(shù)組中是否包含某個(gè)元素,對(duì)一個(gè)數(shù)組中的元素進(jìn)行計(jì)數(shù),添加或刪除數(shù)組中的元素或者對(duì)數(shù)組中的元素進(jìn)行排序。

分享:談PHP本地調(diào)試環(huán)境簡(jiǎn)易安裝配置
對(duì)于PHP的應(yīng)用,我個(gè)人比較傾向于使用Linux的操作系統(tǒng)下的Apache PHP Mysql(或者Oracle)配置,而不建議使用Windows系統(tǒng)構(gòu)建PHP作業(yè)服務(wù)器。理由很簡(jiǎn)單,PHP的原型就是基于Linux系統(tǒng)開發(fā)的一個(gè)Web服務(wù)工具,雖然也為了方便移植到window系統(tǒng),但是卻有相當(dāng)部分

來源:模板無憂//所屬分類:PHP教程/更新時(shí)間:2009-06-28
相關(guān)PHP教程