搜尋
首頁後端開發php教程新手上路技巧 PHP新手上路(十四)

其他雜項
13.1 產生影像  
  PHP可以操作處理影像。如果你已經安裝了GD庫,你甚至可以利用PHP生成映像。

Header("Content-type: image/gif");
$string=implode($argv," ");
$im = imagecreatefromton("images/button1. ");
$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);
?>
(譯者註:上述程式碼段缺少註釋,請讀者參考PHP Manual的圖像處理函數部分)
  這段程式碼在其他頁面中透過以下標記新手上路技巧 PHP新手上路(十四)調用,然後以上的那段button.php3程式碼取得text值並在另外取得的圖像檔案中加上該值--在以上的程式碼中該圖像檔案是images/button1.gif--最後輸出到瀏覽器。假如你想在表單域中使用圖像按鈕,但是又不希望在每次按鈕上的文字改變後不得不重新生成新的圖像,就可以利用這樣簡單的方法動態生成圖像文件。
13.2 Cookies
  PHP支援基於HTTP的cookies。在需要時你可以像使用一般變數一樣方便的使用cookie。 Cookies是瀏覽器保存於客戶端的一些資訊片段,由此你可以知道是否一台特定PC上的任何人都訪問過你的站點,瀏覽者在你的站點上的踪跡等等。使用cookies的典型例子就是對瀏覽者偏好的甄別。 Cookies由函數setcookie()設定。與輸出HTTP標頭的函數header()一樣,setcookie()必須在任何實際內容杯輸出到瀏覽器之前呼叫。以下是一個簡單範例:

if (empty($VisitedBefore))  
{
// 如果沒有設定cookie,請為cookie賦上目前時間值
// 函數中的最後一個參數聲明了該cookie保存的時間
// 在這個例子中是1年
// time()函數返回自1970年1月1日以來的以秒數計的時間
SetCookie("VisitedBefore",time(), time()+(60*60*24*365));
}  
else  
{
// 🎜>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 常用函數?>
13.3 常用函數陣列
array - 產生陣列  
count - 陣列元素個數  
sort - 陣列排序,其他幾種排序函數可供使用  
list - 列出陣列元素  current - 傳回目前陣列元素  
next,prev - 傳回目前陣列元素前後指針  
日期與時間checkdate - 驗證日期/時間格式>date - 產生日期/時間格式  
time - 目前時間資訊  
strftime - 格式化日期/時間  
目錄、檔案系統
chdir - 變更目錄  
目錄、檔案系統
chdir - 變更目錄  
opendir, readdir, closedir - 開啟、讀取、關閉目錄  
fopen, fclose - 開啟、關閉檔案  
fgets, fgetss - 逐行讀取內容  
file - 將整個檔案讀入一個陣列變數中讀入一個陣列變數
正規表示式
ereg - 符合正規表示式  
eregi - 大小寫非敏感度符合正規表示式  
ereg_replace -符合正規表示式並取代  
eregi_replace -ere表達式並取代  
split - 依規則切開字串並以陣列情勢儲存
字串
AddSlashes - 加上斜線後使用字串  
echo - 輸出一個或多個字串
join, implode - 將陣列元素合併為字串  
htmlentities, htmlspecialchars - 將HTML特殊字元轉換為HTML標記形式  
split - 依序顯示字串擴展我們的範例主頁
  我們將使用上述提到的一些函數和思想為我們的範例主頁添加更多的動態內容。我們可以在每個頁面的頂部加上導覽欄,同時使得當前頁自動的不被連結顯示;同時也可以新增一個使用者驗證表單以便上傳音樂、圖像等檔案並自動更新頁面。
導覽列
  其實就是在footer.inc檔中加上一段程式碼。假設你的web站點中所有後綴為.php3的檔案都會出現在導覽列中,以下就是被存為include/navbar.inc的程式碼:

/* 輸出該導覽列,連結所有除當前頁的站內.php3檔*/
# 讀取目錄
$d = dir("./");
echo "

| n";
while($entry = $d->read())
{
// 忽略無檔案情況
if ( !is_file($entry) )
continue;
/* 將檔案名稱與副檔名分開。由於.是正規表示式特殊字符,因此應該用引出*/
list($filenm, $fileext) = split(".",$entry, 2);
// 忽略非.php3檔案狀況
if( $fileext != "php3" )
continue;
/* 現在我們已經把.php3檔案都選出,下面搜尋文件中的第一行(標題)
類似$title ="something";
並將以上標題內容分開,用作連結文字*/
$linknm = "";
$fp=fopen($entry,"r");
while ($buffer=fgets($fp, 4096))
{
$buffer = trim($buffer);
// 我們已經把每個文件的標題放在文件的第一行以便搜索
// 但是當你改變變數名稱時可能會帶來*煩
if (ereg("title *= *"", $buffer))
{
/* 我們已經取得了標題內容並且可以在此基礎上
進行去除空格等處理。 / 然後將連結文字顯示為標題文字
$linknm = $title;
break;
}
}
fclose($fp);
if ( $entry == basename ($PHP_SELF) )
echo "$linknm";
else
echo "$linknm";
echo " | ";
}
$d->close();
echo "

n";
?>
照片收藏夾
  我們將引用基於HTTP的驗證、檔案系統函數和檔案上傳功能維護放置圖像檔案的目錄。
檔案上傳

include("include/common.inc");
// 我們在這裡再做一次使用者驗證
if(!isset($PHP_AUTH_USER))  
if(!isset($PHP_AUTH_USER))  
{
Header("WWW-Authenticate: Basic realm="$MySiteName"");
Header("HTTP/1.0 401 Unauthorized");
echo "Sorry, youhorized not yhorized"); filesn";
exit;
}  
else  
{
if ( !($PHP_AUTH_USER==$MyName && $PHP_AUTH_PW==$編號 ) ) / 如果是錯誤的使用者名稱/密碼對,強制再次認證
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 ) 觀看者按下"取消"按鈕則轉向首頁
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 = "Hnotgnotg + + + +m + + hagong = + + +msg + +Hnag = specl​​nid omg = "Youn_msg = + + +msg + + +mgm = + + +msg % a file for uploading.";
return;
}
if ( $userfile_size > 2000000 )  
{
$error_msg = "Sorry, y
{
$error_msg = "Sorry, yourour fileo too return;
}
// Wherever you have write permission below...
$upload_dir = "photos";
$local_file = "$upload_dir/$userfile_name";
$local_file = "$upload_dir/$userfile_name";
if if ( $local_file ) ) {
$error_msg = "Sorry, a file with that name already exists";
return;
};
// 你也可以由此檢查檔案名稱/類型對以確定是何種檔案: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>$d = dir>$d = dir>$d = dir>$d = dir>$d = dir>$d = ("photos");
while($entry = $d->read())
{
if (is_file("photos/$entry"))
echo "新手上路技巧 PHP新手上路(十四)n";
}
$d->close();
?>

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

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

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
如何使PHP應用程序更快如何使PHP應用程序更快May 12, 2025 am 12:12 AM

tomakephpapplicationsfaster,關注台詞:1)useopcodeCachingLikeLikeLikeLikeLikePachetoStorePreciledScompiledScriptbyTecode.2)MinimimiedAtabaseSqueriSegrieSqueriSegeriSybysequeryCachingandeffeftExting.3)Leveragephp7 leveragephp7 leveragephp7 leveragephpphp7功能forbettercodeefficy.4)

PHP性能優化清單:立即提高速度PHP性能優化清單:立即提高速度May 12, 2025 am 12:07 AM

到ImprovephPapplicationspeed,關注台詞:1)啟用opcodeCachingwithapCutoredUcescriptexecutiontime.2)實現databasequerycachingingusingpdotominiminimizedatabasehits.3)usehttp/2tomultiplexrequlexrequestsandreduceconnection.4 limitesclection.4.4

PHP依賴注入:提高代碼可檢驗性PHP依賴注入:提高代碼可檢驗性May 12, 2025 am 12:03 AM

依赖注入(DI)通过显式传递依赖关系,显著提升了PHP代码的可测试性。1)DI解耦类与具体实现,使测试和维护更灵活。2)三种类型中,构造函数注入明确表达依赖,保持状态一致。3)使用DI容器管理复杂依赖,提升代码质量和开发效率。

PHP性能優化:數據庫查詢優化PHP性能優化:數據庫查詢優化May 12, 2025 am 12:02 AM

DatabasequeryoptimizationinPHPinvolvesseveralstrategiestoenhanceperformance.1)Selectonlynecessarycolumnstoreducedatatransfer.2)Useindexingtospeedupdataretrieval.3)Implementquerycachingtostoreresultsoffrequentqueries.4)Utilizepreparedstatementsforeffi

簡單指南:帶有PHP腳本的電子郵件發送簡單指南:帶有PHP腳本的電子郵件發送May 12, 2025 am 12:02 AM

phpisusedforsenderemailsduetoitsbuilt-inmail()函數andsupportivelibrariesLikePhpMailerAndSwiftMailer.1)usethemail()functionForbasiceMails,butithasimails.2)butithasimail.2)

PHP性能:識別和修復瓶頸PHP性能:識別和修復瓶頸May 11, 2025 am 12:13 AM

PHP性能瓶颈可以通过以下步骤解决:1)使用Xdebug或Blackfire进行性能分析,找出问题所在;2)优化数据库查询并使用缓存,如APCu;3)使用array_filter等高效函数优化数组操作;4)配置OPcache进行字节码缓存;5)优化前端,如减少HTTP请求和优化图片;6)持续监控和优化性能。通过这些方法,可以显著提升PHP应用的性能。

PHP的依賴注入:快速摘要PHP的依賴注入:快速摘要May 11, 2025 am 12:09 AM

依賴性注射(DI)InphpisadesignPatternthatManages和ReducesClassDeptions,增強量強制性,可驗證性和MATIALWINABIOS.ItallowSpasspassingDepentenciesLikEdenciesLikedAbaseConnectionStoclasseconnectionStoclasseSasasasasareTers,interitationAseTestingEaseTestingEaseTestingEaseTestingEasingAndScalability。

提高PHP性能:緩存策略和技術提高PHP性能:緩存策略和技術May 11, 2025 am 12:08 AM

cachingimprovesphpermenceByStorcyResultSofComputationsorqucrouctationsorquctationsorquickretrieval,reducingServerLoadAndenHancingResponsetimes.feftectivestrategiesinclude:1)opcodecaching,whereStoresCompiledSinmememorytssinmemorytoskipcompliation; 2)datacaching datacachingsingMemccachingmcachingmcachings

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱門文章

熱工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具