国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 後端開發(fā) php教程 5.PHP的其他功能_PHP教程

5.PHP的其他功能_PHP教程

Jul 21, 2016 pm 04:08 PM
php 功能 可以 影像 處理 操作 產(chǎn)生


5.?其他雜項(xiàng)?


5.1?產(chǎn)生影像



PHP可以操作處理影像。如果你已經(jīng)安裝了GD庫,你甚至可以利用PHP生成映像。



Header("Content-type:?image/gif");

$string=implode($argv,"?");

$im?=?imagecreatefromgif("images/button1.gif");

$orange?=?ImageColorAllocate($im,?220,?210,?60);


ImageString($im,3,$px,9,$string,$orange);

ImageGif($im);

ImageDestroy($im);

?>

(譯者註:上述程式碼段缺少註釋,請讀者參考PHP?Manual的影像處理函數(shù)部分)

這段程式碼在其他頁面中透過以下標(biāo)記5.PHP的其他功能_PHP教程調(diào)用,然後以上的那段button.php3程式碼取得text值並在另外取得的圖像檔案中加上該值--在以上的程式碼中該圖像檔案是images/button1.gif--最後輸出到瀏覽器。假如你想在表單域中使用圖像按鈕,但是又不希望在每次按鈕上的文字改變後不得不重新生成新的圖像,就可以利用這樣簡單的方法動態(tài)生成圖像文件。



5.2?Cookies



PHP支援基於HTTP的cookies。在需要時你可以像使用一般變數(shù)一樣方便的使用cookie。 Cookies是瀏覽器保存於客戶端的一些資訊片段,由此你可以知道是否一臺特定PC上的任何人都訪問過你的站點(diǎn),瀏覽者在你的站點(diǎn)上的蹤跡等等。使用cookies的典型例子就是對瀏覽者偏好的甄別。 Cookies由函數(shù)setcookie()設(shè)定。與輸出HTTP標(biāo)頭的函數(shù)header()一樣,setcookie()必須在任何實(shí)際內(nèi)容杯輸出到瀏覽器之前呼叫。以下是一個簡單範(fàn)例:



if?(empty($VisitedBefore))?

{

///如果沒有設(shè)定cookie,請設(shè)定cookie,請為Cookie賦上目前時間值

//?函數(shù)中的最後一個參數(shù)宣告了該cookie保存的時間

//?在這個例子中是1年

// time()函數(shù)傳回自1970年1月1日以來的以秒數(shù)計的時間

SetCookie("VisitedBefore",time(),?time() (60*60*24*365));

}?

else?

{

//?歡迎瀏覽者再次光臨

echo?";?

//?讀取cookie並判斷

if?(?(time()?-?$VisitedBefore)?>=?"(60*60*24*7)"?)? >echo?"Why?did?you?take?a?week?to?come?back.?You?should?be?here?more?often!??
";?
5.3?基於HTTP驗(yàn)證



基於HTTP驗(yàn)證當(dāng)PHP以CGI模式運(yùn)作時無法實(shí)現(xiàn)。我們可以使用函數(shù)header()發(fā)送HTTP標(biāo)頭強(qiáng)制驗(yàn)證,客戶端瀏覽器則會彈出供輸入使用者名稱和密碼的對話框。這兩個變數(shù)被儲存在$PHP_AUTH_USER和$PHP_AUTH_PW中,你可以使用這兩個變數(shù)驗(yàn)證合法並允許進(jìn)入。以下的範(fàn)例透過使用者名稱/密碼對為tnc/nature的驗(yàn)證一個使用者的登入:



if(!isset($PHP_AUTH_USER))?

{

Header("WWW-Authenticate:?Basic?realm="My?Realm"");

Header("HTTP/1.0?401?Unauthorized");


exit;

}?

else?
=="tnc"?&&?$PHP_AUTH_PW=="nature")?
)

{

//?如果是錯誤的使用者名稱/密碼對,強(qiáng)制再驗(yàn)證

Header("WWW-Authenticate:?Basic?realm="My?Realm"");

Header("HTTP/1.0?401?Unauthorized");
exit;

}?

else?

}

?>

事實(shí)上再實(shí)際引用中不大可能如上面使用代碼段明顯的用戶名稱/密碼對,而是利用數(shù)據(jù)庫或者加密的密碼文件訪問它們。



5.4?檔案上傳



你可以利用PHP實(shí)作檔案的功能,注意客戶端的瀏覽器應(yīng)該是Netscape3以上或IE3以上。以下就是此功能的簡單示範(fàn):

(?upload.html?):





<br><br><br><title>上傳您的文件






ENCTYPE="receiver.php3"?

ENCTYPE="multipart/ form-data"?METHOD=POST>


NAME="MAX_FILE_SIZE"?VALUE="2000000">




名稱=“上傳檔案”=大小=“24”=最大長度=“80”>






NAME=“發(fā)送”>?


NAME="cancelit" >




(您可能會注意到

我們上傳您的檔案時有輕微的延遲。文件:

(?receiver.php3?):


函數(shù)do_upload ()

{

全域$uploadfile, $uploadfile_size;

全域$uploadfile, $uploadfile_size;

全域$ ($uploadfile?==?"無"?)?

{

$error_msg =?「您沒有指定上傳檔案?!?

return;



if?($uploadfile_size?>?2000000?)?

{

$error_msg =?「抱歉,您的檔案?!?

}

$the_time?=?time?();

//您需要對下列目錄有寫入權(quán)限

$upload_dir?=?"/local/上傳"; ??>
$local_file?=?"$upload_dir/$the_time";

if?(?file_exists?(?'$local_file'?)?)$

while(file_exists(「$upload_dir/$the_time$seq」)){$seq ;?}

$local_file?=?"$upload_dir/$the_time$seq"; >};

重新命名(?$uploadfile,?$local_file?);

display_page ();

}

fption??>
}

f. ??>{

//這裡是您的內(nèi)容頁面

}








php3?接收腳本






if?(?$error_msg?)?{?echo?"$error_msg

";?
}

if?( ??>{

do_upload?();

}?

elseif?($cancelit?)

{
退出;

}?

else?

{

some__func

?>







5.5?常用函數(shù)


5.5?常用函數(shù)




我們簡單來看看一些常用的函數(shù)。



陣列





array?-?元素產(chǎn)生
sort?-?數(shù)組排序,其他幾種排序函數(shù)可供使用?

list?-?列出數(shù)組元素?

each?-?返回下一個key/value對?

each?-?返回下一個key/value對?

current?-?返回當(dāng)前數(shù)組元素?

next,prev?-?傳回當(dāng)前數(shù)組元素前後指針?







日期和時間



checkdate?-?驗(yàn)證日期/時間格式?

date?-?產(chǎn)生日期/時間格式?

time?-?產(chǎn)生日期/時間格式?

time?strftime?-?格式化日期/時間?



目錄、檔案系統(tǒng)



chdir?-?> ??>
opendir,?readdir,?closedir?-?開啟、讀取、關(guān)閉目錄?

fopen,?fclose?-?開啟、關(guān)閉檔案
file?-?將整個檔案讀入一個陣列變數(shù)中?



正規(guī)表示式



正則表達(dá)式



ereg?-?
eregi?-?大小寫非敏感比對正規(guī)表示式?

ereg_replace?-匹配正規(guī)表示式並取代?

eregi_replace?-大小寫非敏感符合正則表達(dá)式並取代?

eregi_replace?-大小寫非敏感匹配正則表達(dá)式並取代>split?-?依規(guī)則切開字串並以陣列情勢儲存






字串



字串



echo?-?輸出一個或多個字串?

join,?implode?-?將陣列元素合併為字串?
html/html, -?將HTML特殊字元轉(zhuǎn)換為HTML標(biāo)記形式?

split?-?依規(guī)則切開字串並以陣列情勢儲存?

5.6?
我們將使用以上提到的一些函數(shù)和思想為我們的範(fàn)例主頁添加更多的動態(tài)內(nèi)容。我們可以在每個頁面的頂部加上導(dǎo)覽欄,同時使得當(dāng)前頁自動的不被連結(jié)顯示;同時也可以新增一個使用者驗(yàn)證表單以便上傳音樂、圖像等檔案並自動更新頁面。?
導(dǎo)覽列



其實(shí)就是在footer.inc檔中加上一段程式碼。假設(shè)你的web站點(diǎn)中所有後綴為.php3的檔案都會出現(xiàn)在導(dǎo)覽列中,以下就是被存為include/navbar.inc的程式碼:



/*?輸出此導(dǎo)覽列,連結(jié)所有除目前頁面的站內(nèi).php3檔案?*/

#?讀取目錄

$d?=?dir("./");

echo "

?|?n";

while($entry?=?$d->read())

{

//?忽略無文件狀況

if?(?!is_file($entry)?)

continue;

/*?將檔案名稱與副檔名分開。由於.是正規(guī)表示式特殊字符,應(yīng)該用引出?*/

list($filenm,?$fileext)?=?split(".",$entry,?2);

//?忽略非.php3文件狀況

if(?$fileext?!=?"php3"?)

continue;

/*?現(xiàn)在我們已經(jīng)把.php3檔案都選出,下面搜尋文件中的第一行(標(biāo)題)

類似$title="something";

並將上述標(biāo)題內(nèi)容分開,用作連結(jié)文字?*/

$linknm =?"";

$fp=fopen($entry,"r");

while($buffer=fgets($fp,?4096))

{

$buffer?=?trim($buffer);

//?我們已經(jīng)把每個文件的標(biāo)題放在文件的第一行以便搜尋

//?但是當(dāng)你改變變數(shù)名稱時可能會帶來*煩

if?(ereg("title?*=?*"",?$buffer))

{

/*?我們已經(jīng)取得了標(biāo)題內(nèi)容並且可以在此基礎(chǔ)上

進(jìn)行去除空格等處理。 eval($buffer);

//?然後將鏈接文字顯示為標(biāo)題文字

$linknm?=?$title;

break;

}

}

fclose($fp);

if?(?$entry?==?basename($PHP_SELF)?)

>
else

echo?"$linknm";

echo?"?|?";

}
}
)

$d->close();

echo?"?

n";

?>



照片收藏夾



我們將引用基於HTTP的驗(yàn)證、檔案系統(tǒng)函數(shù)和檔案上傳功能維護(hù)放置映像檔的目錄。目錄下所有照片的頁面。



檔案上傳



include("include/common.inc");

//?我們在這裡再做一次使用者驗(yàn)證?

if(!isset($PHP_AUTH_USER))?

{

Header("WWW-Authenticate:?Basic?realm="$SiteName?realm");

Header("HTTP/1.0?401?Unauthorized");

echo?"Sorry,?you?are?not?authorized?to?upload?fileo> }?

else?

{

if?(?!($PHP_AUTH_USER==$MyName?&&?$PHP_AUTH_PW==$$)>
//?如果是錯誤的使用者名稱/密碼對,強(qiáng)制再次認(rèn)證

Header("WWW-Authenticate:?Basic?realm="My?Realm"");

Header(" HTTP/1.0?401?Unauthorized");

echo?"ERROR?:?$PHP_AUTH_USER/$PHP_AUTH_PW?is?invalid.

";
}

if?(?$cancelit?)?

{

//?當(dāng)瀏覽者按下"取消"按鈕則轉(zhuǎn)向首頁


exit;

}

function?do_upload?()?{
user
function?do_upload?()?{
global?$local_file,?$error_msg;

global?$HTTP_REFERER;
return;

}


$error_msg?=?"Sorry,?your?file?is?too?large.";

return;

$upload_dir?=?"photos";

$local_file?=?"$upload_dir/$userfile_name";
if?(
$error_msg?=?"Sorry,?a?file?with?that?name?already?exists";

return;

};

return;

};

可以由此檢查文件名稱/??> /類型對以確定是何種文件:gif,jpg,mp3…

rename($userfile,?$local_file);

echo?"The?file?is?uploaded
n";

echo?"Go?Back
n";

}

$title?=?UpUpload???>
include("include/header.inc");

if?(empty($userfile)?
?$userfile=="none")?

{
{

//?輸出以下表單

?>





MAXLENGTH="80">












(You?may?notice?a?slight?delay?while?
we?upload?your?file.)







$error_msg

";?
}

if?(?;

}?

}

include("include/footer.inc");

?>



照片圖庫







include("include/common.inc");

"Gallery";

include("include/header.inc");

?>



be?made?better,?by?splitting?into?multiple?pages.



while($entry?=?$d->read())

{

if?(is_file("photos/$entry") )

echo?"5.PHP的其他功能_PHP教程n";

}

$d->close();


$d->close();

?>



include("include/footer.inc");

?>



?>



另外,你可以在檔案上傳的表單中加上一個輸入元素去描述該上傳的檔案。這個元素將會被儲存在檔案中,然後被以上的照片圖庫的那段程式碼所讀出並顯示出來。

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/314690.htmlTechArticle5.其他雜項(xiàng)5.1產(chǎn)生影像PHP可以操作處理影像。如果你已經(jīng)安裝了GD庫,你甚至可以利用PHP生成映像。 ? Header("Content-type:image/gif"); $string=imp...

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何在PHP中獲取當(dāng)前的會話ID? 如何在PHP中獲取當(dāng)前的會話ID? Jul 13, 2025 am 03:02 AM

在PHP中獲取當(dāng)前會話ID的方法是使用session_id()函數(shù),但必須先調(diào)用session_start()才能成功獲取。 1.調(diào)用session_start()啟動會話;2.使用session_id()讀取會話ID,輸出類似abc123def456ghi789的字符串;3.若返回為空,檢查是否遺漏session_start()、用戶是否首次訪問或會話是否被銷毀;4.會話ID可用於日誌記錄、安全驗(yàn)證和跨請求通信,但需注意安全性。確保正確開啟會話後即可順利獲取ID。

php從字符串獲取子字符串 php從字符串獲取子字符串 Jul 13, 2025 am 02:59 AM

要從PHP字符串中提取子字符串,可使用substr()函數(shù),其語法為substr(string$string,int$start,?int$length=null),若未指定長度則截取至末尾;處理多字節(jié)字符如中文時應(yīng)使用mb_substr()函數(shù)以避免亂碼;若需根據(jù)特定分隔符截取字符串,可使用explode()或結(jié)合strpos()與substr()實(shí)現(xiàn),例如提取文件名擴(kuò)展名或域名。

您如何執(zhí)行PHP代碼的單元測試? 您如何執(zhí)行PHP代碼的單元測試? Jul 13, 2025 am 02:54 AM

UnittestinginPHPinvolvesverifyingindividualcodeunitslikefunctionsormethodstocatchbugsearlyandensurereliablerefactoring.1)SetupPHPUnitviaComposer,createatestdirectory,andconfigureautoloadandphpunit.xml.2)Writetestcasesfollowingthearrange-act-assertpat

如何將字符串分為PHP中的數(shù)組 如何將字符串分為PHP中的數(shù)組 Jul 13, 2025 am 02:59 AM

在PHP中,最常用的方法是使用explode()函數(shù)將字符串拆分為數(shù)組。該函數(shù)通過指定的分隔符將字符串分割成多個部分並返回數(shù)組,語法為explode(separator,string,limit),其中separator為分隔符,string為原字符串,limit為可選參數(shù)控制最大分割數(shù)量。例如$str="apple,banana,orange";$arr=explode(",",$str);結(jié)果為["apple","bana

JavaScript數(shù)據(jù)類型:原始與參考 JavaScript數(shù)據(jù)類型:原始與參考 Jul 13, 2025 am 02:43 AM

JavaScript的數(shù)據(jù)類型分為原始類型和引用類型。原始類型包括string、number、boolean、null、undefined和symbol,其值不可變且賦值時復(fù)制副本,因此互不影響;引用類型如對象、數(shù)組和函數(shù)存儲的是內(nèi)存地址,指向同一對象的變量會相互影響。判斷類型可用typeof和instanceof,但需注意typeofnull的歷史問題。理解這兩類差異有助於編寫更穩(wěn)定可靠的代碼。

在C中使用std :: Chrono 在C中使用std :: Chrono Jul 15, 2025 am 01:30 AM

std::chrono在C 中用於處理時間,包括獲取當(dāng)前時間、測量執(zhí)行時間、操作時間點(diǎn)與持續(xù)時間及格式化解析時間。 1.獲取當(dāng)前時間使用std::chrono::system_clock::now(),可轉(zhuǎn)換為可讀字符串但係統(tǒng)時鐘可能不單調(diào);2.測量執(zhí)行時間應(yīng)使用std::chrono::steady_clock以確保單調(diào)性,並通過duration_cast轉(zhuǎn)換為毫秒、秒等單位;3.時間點(diǎn)(time_point)和持續(xù)時間(duration)可相互操作,但需注意單位兼容性和時鐘紀(jì)元(epoch)

PHP如何處理環(huán)境變量? PHP如何處理環(huán)境變量? Jul 14, 2025 am 03:01 AM

toAccessenvironmentVariablesInphp,useGetenv()或$ _envsuperglobal.1.getEnv('var_name')retievesSpecificvariable.2。 $ _ en v ['var_name'] accessesvariablesifvariables_orderInphp.iniincludes“ e” .setVariablesViaCliWithvar = vualitephpscript.php,inapach

PHP中的晚期靜態(tài)結(jié)合是什麼? PHP中的晚期靜態(tài)結(jié)合是什麼? Jul 13, 2025 am 02:36 AM

exmallationalbindinginphpallowsstatic :: torefertotheclassInallyCallentimeInIminInheritancesCenarios.beForePhp5.3,self :: wallding referferenceedtheclassecceedtheclasswhereTheSheTheShodwhereTheShodWhereTheShodWhereTheShodWhereShodWhereShodWhereTheShodWhereShodeDwaseDined,causisionChildClass :: sayhello()sayhello()sayhello()sayhello()

See all articles