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

首頁 后端開發(fā) php教程 新手上路技巧 PHP新手上路(十四)

新手上路技巧 PHP新手上路(十四)

Jul 29, 2016 am 08:34 AM

其他雜項(xiàng)
13.1 生成圖像??
  PHP可以操作處理圖像。如果你已經(jīng)安裝了GD庫,你甚至可以利用PHP生成圖像。

Header("Content-type: image/gif");
$string=implode($argv," ");
$im = imagecreatefromgif("images/button1.gif");
$orange = ImageColorAllocate($im, 220, 210, 60);
$px = (imagesx($im)-7.5*strlen($string))/2;
ImageString($im,3,$px,9,$string,$orange);
ImageGif($im);
ImageDestroy($im);
?>
(譯者注:以上代碼段缺少注釋,請(qǐng)讀者參考PHP Manual的圖像處理函數(shù)部分)
  這段代碼在其他頁面中通過以下標(biāo)記新手上路技巧 PHP新手上路(十四)調(diào)用,然后以上的那段button.php3代碼取得text值并在另外取得的圖像文件中加上該值--在以上的代碼中該圖像文件是images/button1.gif--最后輸出到瀏覽器。假如你想在表單域中使用圖像按鈕,但是又不希望在每次按鈕上的文字改變后不得不重新生成新的圖像,就可以利用這樣簡(jiǎn)單的方法動(dòng)態(tài)生成圖像文件。
13.2 Cookies
  PHP支持基于HTTP的cookies。在需要時(shí)你可以像使用一般變量一樣方便的使用cookie。Cookies是瀏覽器保存于客戶端的一些信息片段,由此你可以知道是否一臺(tái)特定PC上的任何人都訪問過你的站點(diǎn),瀏覽者者在你的站點(diǎn)上的蹤跡等等。使用cookies的典型例子就是對(duì)瀏覽者偏好的甄別。Cookies由函數(shù)setcookie()設(shè)定。與輸出HTTP標(biāo)頭的函數(shù)header()一樣,setcookie()必須在任何實(shí)際內(nèi)容杯輸出到瀏覽器之前調(diào)用。以下是一個(gè)簡(jiǎn)單例子:

if (empty($VisitedBefore))??
{
// 如果沒有設(shè)定cookie,為cookie賦上當(dāng)前時(shí)間值
// 函數(shù)中的最后一個(gè)參數(shù)聲明了該cookie保存的時(shí)間
// 在這個(gè)例子中是1年
// time()函數(shù)返回自1970年1月1日以來的以秒數(shù)計(jì)的時(shí)間
SetCookie("VisitedBefore",time(), time()+(60*60*24*365));
}??
else??
{
// 歡迎瀏覽者再次光臨
echo "Hello there, welcome back
";??
// 讀取cookie并判斷
if ( (time() - $VisitedBefore) >= "(60*60*24*7)" )??
echo "Why did you take a week to come back. You should be here more often!? ";??
}??
?>
13.3 常用函數(shù)
我們簡(jiǎn)單來看看一些常用的函數(shù)。
數(shù)組
array - 生成數(shù)組??
count - 數(shù)組元素個(gè)數(shù)??
sort - 數(shù)組排序,另有其他幾種排序函數(shù)可供使用??
list - 列出數(shù)組元素??
each - 返回下一個(gè)key/value對(duì)??
current - 返回當(dāng)前數(shù)組元素??
next,prev - 傳回當(dāng)前數(shù)組元素前后指針??
日期和時(shí)間
checkdate - 驗(yàn)證日期/時(shí)間格式??
date - 生成日期/時(shí)間格式??
time - 當(dāng)前時(shí)間信息??
strftime - 格式化日期/時(shí)間??
目錄、文件系統(tǒng)
chdir - 改變目錄??
dir - 目錄類別??
opendir, readdir, closedir - 開啟、讀取、關(guān)閉目錄??
fopen, fclose - 開啟、關(guān)閉文件??
fgets, fgetss - 逐行讀取內(nèi)容??
file - 將整個(gè)文件讀入一個(gè)數(shù)組變量中??
正則表達(dá)式
ereg - 匹配正則表達(dá)式??
eregi - 大小寫非敏感匹配正則表達(dá)式??
ereg_replace -匹配正則表達(dá)式并替換??
eregi_replace -大小寫非敏感匹配正則表達(dá)式并替換??
split - 依規(guī)則切開字符串并以數(shù)組形勢(shì)存儲(chǔ)
字符串
AddSlashes - 加上斜杠后使用字符串??
echo - 輸出一個(gè)或多個(gè)字符串??
join, implode - 將數(shù)組元素合并為字符串??
htmlentities, htmlspecialchars - 將HTML特殊字符轉(zhuǎn)換為HTML標(biāo)記形式??
split - 依規(guī)則切開字符串并以數(shù)組形勢(shì)存儲(chǔ)??
13.4 擴(kuò)展我們的范例主頁
  我們將使用以上提到的一些函數(shù)和思想為我們的范例主頁添加更多的動(dòng)態(tài)內(nèi)容。我們可以在每個(gè)頁面的頂部加上導(dǎo)航欄,同時(shí)使得當(dāng)前頁自動(dòng)的不被鏈接顯示;同時(shí)還可以添加一個(gè)用戶驗(yàn)證表單以便上傳音樂、圖像等文件并自動(dòng)更新頁面。
導(dǎo)航欄
  實(shí)際上就是在footer.inc文件中加上一段代碼。假設(shè)你的web站點(diǎn)中所有后綴為.php3的文件都會(huì)出現(xiàn)在導(dǎo)航欄中,以下就是被存為include/navbar.inc的代碼:

/* 輸出該導(dǎo)航欄,鏈接所有除當(dāng)前頁的站內(nèi).php3文件 */
# 讀取目錄
$d = dir("./");
echo "

| n";
while($entry = $d->read())
{
// 忽略無文件情況
if ( !is_file($entry) )
continue;
/* 將文件名與擴(kuò)展名分開。由于.是正則表達(dá)式特殊字符,應(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)容分開,用作鏈接文字 */
$linknm = "";
$fp=fopen($entry,"r");
while($buffer=fgets($fp, 4096))
{
$buffer = trim($buffer);
// 我們已經(jīng)把每個(gè)文件的標(biāo)題放在文件的第一行以便搜索
// 但是當(dāng)你改變變量名稱時(shí)可能會(huì)帶來*煩
if (ereg("title *= *"", $buffer))
{
/* 我們已經(jīng)取得了標(biāo)題內(nèi)容并可以在此基礎(chǔ)上
進(jìn)行去除空格等處理。
必須以PHP代碼方式處理,比如$title = "blah blah" */
eval($buffer);
// 然后將鏈接文字顯示為標(biāo)題文字
$linknm = $title;
break;
}
}
fclose($fp);
if ( $entry == basename($PHP_SELF) )
echo "$linknm";
else
echo "$linknm";
echo " | ";
}
$d->close();
echo "

n";
?>
照片收藏夾
  我們將引用基于HTTP的驗(yàn)證、文件系統(tǒng)函數(shù)和文件上傳功能維護(hù)放置圖像文件的目錄。
同時(shí)我們需要建立一個(gè)可以列出在該目錄下所有照片的頁面。
文件上傳

include("include/common.inc");
// 我們?cè)谶@里再做一次用戶驗(yàn)證
if(!isset($PHP_AUTH_USER))??
{
Header("WWW-Authenticate: Basic realm="$MySiteName"");
Header("HTTP/1.0 401 Unauthorized");
echo "Sorry, you are not authorized to upload filesn";
exit;
}??
else??
{
if ( !($PHP_AUTH_USER==$MyName && $PHP_AUTH_PW==$MyPassword ) )
{
// 如果是錯(cuò)誤的用戶名稱/密碼對(duì),強(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.

";
exit;
}??
}
if ( $cancelit )??
{
// 當(dāng)瀏覽者按下"取消"按鈕則轉(zhuǎn)向首頁面
header ( "Location: front_2.php3" );
exit;
}
function do_upload () {
global $userfile, $userfile_size, $userfile_name, $userfile_type;
global $local_file, $error_msg;
global $HTTP_REFERER;
if ( $userfile == "none" ) {
$error_msg = "You did not specify a file for uploading.";
return;
}
if ( $userfile_size > 2000000 )??
{
$error_msg = "Sorry, your file is too large.";
return;
}
// Wherever you have write permission below...
$upload_dir = "photos";
$local_file = "$upload_dir/$userfile_name";
if ( file_exists ( $local_file ) ) {
$error_msg = "Sorry, a file with that name already exists";
return;
};
// 你還可以由此檢查文件名稱/類型對(duì)以確定是何種文件:gif,jpg,mp3…
rename($userfile, $local_file);
echo "The file is uploaded
n";
echo "Go Back
n";
}
$title = "Upload File";
include("include/header.inc");
if (empty($userfile) || $userfile=="none")??
{
// 輸出以下表單
?>

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









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

} else {
if ( $error_msg ) { echo "$error_msg

"; }
if ( $sendit ) {
do_upload ();
}??
}
include("include/footer.inc");
?>
照片圖庫

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


Here are some of our family photos. This PHP script can really
be made better, by splitting into multiple pages.



$d = dir("photos");
while($entry = $d->read())
{
if (is_file("photos/$entry"))
echo "新手上路技巧 PHP新手上路(十四)n";
}
$d->close();
?>

include("include/footer.inc");
?>
  另外,你可以在文件上傳的表單中加上一個(gè)輸入元素去描述該上傳的文件。這個(gè)元素將被存儲(chǔ)在文件中,然后被以上的照片圖庫的那段代碼所讀出并顯示出來。??

以上就介紹了新手上路技巧 PHP新手上路(十四),包括了新手上路技巧方面的內(nèi)容,希望對(duì)PHP教程有興趣的朋友有所幫助。

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

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

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版

神級(jí)代碼編輯軟件(SublimeText3)

如何在PHP中實(shí)施身份驗(yàn)證和授權(quán)? 如何在PHP中實(shí)施身份驗(yàn)證和授權(quán)? Jun 20, 2025 am 01:03 AM

tosecurelyhandleauthenticationandationallizationInphp,lofterTheSesteps:1.AlwaysHashPasswordSwithPassword_hash()andverifyusingspasspassword_verify(),usepreparedStatatementStopreventsqlineptions,andStoreSeruserDatain usseruserDatain $ _sessiveferterlogin.2.implementrole-2.imaccessccsccccccccccccccccccccccccc.

如何在PHP中安全地處理文件上傳? 如何在PHP中安全地處理文件上傳? Jun 19, 2025 am 01:05 AM

要安全處理PHP中的文件上傳,核心在于驗(yàn)證文件類型、重命名文件并限制權(quán)限。1.使用finfo_file()檢查真實(shí)MIME類型,僅允許特定類型如image/jpeg;2.用uniqid()生成隨機(jī)文件名,存儲(chǔ)至非Web根目錄;3.通過php.ini和HTML表單限制文件大小,設(shè)置目錄權(quán)限為0755;4.使用ClamAV掃描惡意軟件,增強(qiáng)安全性。這些步驟有效防止安全漏洞,確保文件上傳過程安全可靠。

PHP中==(松散比較)和===(嚴(yán)格的比較)之間有什么區(qū)別? PHP中==(松散比較)和===(嚴(yán)格的比較)之間有什么區(qū)別? Jun 19, 2025 am 01:07 AM

在PHP中,==與===的主要區(qū)別在于類型檢查的嚴(yán)格程度。==在比較前會(huì)進(jìn)行類型轉(zhuǎn)換,例如5=="5"返回true,而===要求值和類型都相同才會(huì)返回true,例如5==="5"返回false。使用場(chǎng)景上,===更安全應(yīng)優(yōu)先使用,==僅在需要類型轉(zhuǎn)換時(shí)使用。

如何在PHP( - , *, /,%)中執(zhí)行算術(shù)操作? 如何在PHP( - , *, /,%)中執(zhí)行算術(shù)操作? Jun 19, 2025 pm 05:13 PM

PHP中使用基本數(shù)學(xué)運(yùn)算的方法如下:1.加法用 號(hào),支持整數(shù)和浮點(diǎn)數(shù),也可用于變量,字符串?dāng)?shù)字會(huì)自動(dòng)轉(zhuǎn)換但不推薦依賴;2.減法用-號(hào),變量同理,類型轉(zhuǎn)換同樣適用;3.乘法用*號(hào),適用于數(shù)字及類似字符串;4.除法用/號(hào),需避免除以零,并注意結(jié)果可能是浮點(diǎn)數(shù);5.取模用%號(hào),可用于判斷奇偶數(shù),處理負(fù)數(shù)時(shí)余數(shù)符號(hào)與被除數(shù)一致。正確使用這些運(yùn)算符的關(guān)鍵在于確保數(shù)據(jù)類型清晰并處理好邊界情況。

如何與PHP的NOSQL數(shù)據(jù)庫(例如MongoDB,Redis)進(jìn)行交互? 如何與PHP的NOSQL數(shù)據(jù)庫(例如MongoDB,Redis)進(jìn)行交互? Jun 19, 2025 am 01:07 AM

是的,PHP可以通過特定擴(kuò)展或庫與MongoDB和Redis等NoSQL數(shù)據(jù)庫交互。首先,使用MongoDBPHP驅(qū)動(dòng)(通過PECL或Composer安裝)創(chuàng)建客戶端實(shí)例并操作數(shù)據(jù)庫及集合,支持插入、查詢、聚合等操作;其次,使用Predis庫或phpredis擴(kuò)展連接Redis,執(zhí)行鍵值設(shè)置與獲取,推薦phpredis用于高性能場(chǎng)景,Predis則便于快速部署;兩者均適用于生產(chǎn)環(huán)境且文檔完善。

我如何了解最新的PHP開發(fā)和最佳實(shí)踐? 我如何了解最新的PHP開發(fā)和最佳實(shí)踐? Jun 23, 2025 am 12:56 AM

TostaycurrentwithPHPdevelopmentsandbestpractices,followkeynewssourceslikePHP.netandPHPWeekly,engagewithcommunitiesonforumsandconferences,keeptoolingupdatedandgraduallyadoptnewfeatures,andreadorcontributetoopensourceprojects.First,followreliablesource

什么是PHP,為什么它用于Web開發(fā)? 什么是PHP,為什么它用于Web開發(fā)? Jun 23, 2025 am 12:55 AM

PHPbecamepopularforwebdevelopmentduetoitseaseoflearning,seamlessintegrationwithHTML,widespreadhostingsupport,andalargeecosystemincludingframeworkslikeLaravelandCMSplatformslikeWordPress.Itexcelsinhandlingformsubmissions,managingusersessions,interacti

如何設(shè)置PHP時(shí)區(qū)? 如何設(shè)置PHP時(shí)區(qū)? Jun 25, 2025 am 01:00 AM

tosetTherightTimeZoneInphp,restate_default_timezone_set()functionAtthestArtofyourscriptWithavalIdidentIdentifiersuchas'america/new_york'.1.usedate_default_default_timezone_set_set()

See all articles