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

首頁(yè) 后端開(kāi)發(fā) php教程 在PHP和MySQL中與日期和時(shí)間合作

在PHP和MySQL中與日期和時(shí)間合作

Feb 28, 2025 am 09:22 AM

Working with Dates and Times in PHP and MySQL

在任何編程語(yǔ)言中處理日期和時(shí)間通常是一項(xiàng)簡(jiǎn)單瑣碎的任務(wù),直到需要支持時(shí)區(qū)。幸運(yùn)的是,PHP擁有一套強(qiáng)大的日期/時(shí)間工具,可以幫助您處理各種時(shí)間相關(guān)問(wèn)題:Unix時(shí)間戳、格式化日期以供人類(lèi)閱讀、顯示帶有時(shí)區(qū)的日期、計(jì)算現(xiàn)在到下個(gè)月第二個(gè)星期二之間的時(shí)間差等等。本文將介紹PHP的時(shí)間函數(shù)(time()、mktime()date())及其面向?qū)ο髮?duì)應(yīng)項(xiàng)的基礎(chǔ)知識(shí),然后了解MySQL日期,并向您展示如何使它們與PHP完美配合。

主要收獲

  • 利用PHP強(qiáng)大的日期和時(shí)間函數(shù),如time()mktime()date(),有效處理Unix時(shí)間戳和格式化日期。
  • 利用PHP的DateTimeDateTimeZone對(duì)象進(jìn)行面向?qū)ο蟮娜掌诤蜁r(shí)間操作,包括處理不同的時(shí)區(qū)。
  • 將日期存儲(chǔ)在MySQL中作為Unix時(shí)間戳,以保持不同時(shí)區(qū)之間的一致性,并利用PHP的日期/時(shí)間函數(shù)進(jìn)行轉(zhuǎn)換和格式化。
  • 將服務(wù)器的默認(rèn)時(shí)區(qū)設(shè)置為PHP配置中的UTC,以簡(jiǎn)化日期和時(shí)間管理并確保應(yīng)用程序的一致性。

PHP日期和時(shí)間函數(shù)

本文的大部分內(nèi)容將使用Unix時(shí)間,也稱為POSIX時(shí)間或紀(jì)元時(shí)間。時(shí)間表示為自1970年1月1日午夜UTC以來(lái)經(jīng)過(guò)的秒數(shù)。如果您對(duì)Unix時(shí)間的完整歷史感興趣,請(qǐng)查看維基百科上的Unix時(shí)間文章。UTC(協(xié)調(diào)世界時(shí)),也稱為GMT,有時(shí)也稱為Zulu時(shí)間,是0度經(jīng)線的時(shí)間。世界上所有其他時(shí)區(qū)都表示為相對(duì)于此時(shí)間的正或負(fù)偏移量。使用UTC和Unix時(shí)間處理時(shí)間,在需要處理時(shí)區(qū)時(shí)會(huì)讓您的生活更輕松。稍后我會(huì)詳細(xì)介紹這一點(diǎn),但現(xiàn)在讓我們忽略時(shí)區(qū)問(wèn)題,并查看一些時(shí)間函數(shù)。

獲取當(dāng)前Unix時(shí)間

time()不接受任何參數(shù),并返回自Unix紀(jì)元以來(lái)的秒數(shù)。為了說(shuō)明這一點(diǎn),我將使用PHP交互式CLI shell。

sean@beerhaus:~$ php -a
php > print time();
1324402770

如果您需要Unix時(shí)間的數(shù)組表示,請(qǐng)使用getdate()函數(shù)。它接受一個(gè)可選的Unix時(shí)間戳參數(shù),但如果沒(méi)有提供,則默認(rèn)為time()的值。

php > $unixTime = time();
php > print_r(getdate($unixTime));
Array
(
    [seconds] => 48
    [minutes] => 54
    [hours] => 12
    [mday] => 20
    [wday] => 2
    [mon] => 12
    [year] => 2011
    [yday] => 353
    [weekday] => Tuesday
    [month] => December
    [0] => 1324403688
)

格式化Unix時(shí)間

Unix時(shí)間可以輕松格式化為人類(lèi)希望閱讀的任何字符串。date()用于將Unix時(shí)間戳格式化為人類(lèi)可讀的字符串,并接受一個(gè)格式化參數(shù)和一個(gè)可選的時(shí)間參數(shù)。如果沒(méi)有提供可選的時(shí)間戳,則使用time()的值。

sean@beerhaus:~$ php -a
php > print time();
1324402770

“r”格式化字符串返回由RFC 2822指定的格式化時(shí)間。當(dāng)然,您可以使用其他說(shuō)明符來(lái)定義您自己的自定義格式。

php > $unixTime = time();
php > print_r(getdate($unixTime));
Array
(
    [seconds] => 48
    [minutes] => 54
    [hours] => 12
    [mday] => 20
    [wday] => 2
    [mon] => 12
    [year] => 2011
    [yday] => 353
    [weekday] => Tuesday
    [month] => December
    [0] => 1324403688
)

有關(guān)可接受的格式化字符的完整列表,請(qǐng)參閱PHP文檔中date()的頁(yè)面。但是,當(dāng)與mktime()strtotime()函數(shù)結(jié)合使用時(shí),該函數(shù)變得更有用,正如您將在接下來(lái)的示例中看到的。

根據(jù)給定時(shí)間創(chuàng)建Unix時(shí)間

mktime()用于根據(jù)與日期的每個(gè)部分相對(duì)應(yīng)的值列表(秒、分、小時(shí)、年等)創(chuàng)建Unix時(shí)間戳。它接受許多整數(shù)參數(shù),以以下順序設(shè)置日期的每個(gè)部分:

php > print date("r", $unixTime);
Tue, 20 Dec 2011 12:54:48 -0500

如果啟用了夏令時(shí),則將isDST設(shè)置為1;如果沒(méi)有啟用,則設(shè)置為0;如果未知,則設(shè)置為-1(默認(rèn)值)。

php > print date("m/d/y h:i:s a", $unixTime);
12/20/11 12:54:48 pm
php > print date("m/d/y h:i:s a");
12/20/11 01:12:11 pm
php > print date("jS of F Y", $unixTime);
20th of December 2011

您可以看到,在處理使用用戶自定義日期范圍的數(shù)據(jù)庫(kù)查詢時(shí),mktime()非常有用。例如,如果您在MySQL中將時(shí)間戳存儲(chǔ)為整數(shù)(Unix時(shí)間)(預(yù)示著任何人嗎?),則很容易設(shè)置一個(gè)常見(jiàn)的年至今查詢范圍。

<code>mktime(hour, minute, second, month, day, year, isDST)</code>

將英文日期解析為Unix時(shí)間

幾乎神奇的函數(shù)strtotime()將日期/時(shí)間格式的字符串作為其第一個(gè)參數(shù),以及用作轉(zhuǎn)換基礎(chǔ)的Unix時(shí)間戳。請(qǐng)參閱文檔以了解可接受的日期格式。

php > print date("r", mktime(12, 0, 0, 1, 20, 1987));
Tue, 20 Jan 1987 12:00:00 -0500
php > print date("r", mktime(0, 0, 0, date("n"), date("j"), date("Y")));
Tue, 20 Dec 2011 00:00:00 -0500
php > print date("r", mktime(23, 59, 59, date("n"), date("j"), date("Y")));
Tue, 20 Dec 2011 23:59:59 -0500

PHP的DateTime和DateTimeZone對(duì)象

PHP的DateTime對(duì)象是處理日期和時(shí)區(qū)的面向?qū)ο蠓椒?。?gòu)造方法接受時(shí)間的字符串表示,非常類(lèi)似于上面的strtotime(),有些人可能會(huì)覺(jué)得這更容易使用。如果沒(méi)有提供參數(shù),則默認(rèn)值為“now”。

<?php $startTime = mktime(0, 0, 0, 1, 1, date("y"));
$endTime  ?= mktime(0, 0, 0, date("m"), date("d"), date("y"));

DateTimeformat()方法與上面的date()函數(shù)的工作方式相同,并接受所有相同的格式化字符。DateTime對(duì)象還帶有一些有用的常量,可以將其饋送到format()方法。

php > print strtotime("now");
1324407707
php > print date("r", strtotime("now"));
Tue, 20 Dec 2011 14:01:51 -0500
php > print strtotime("+1 week");
1325012569
php > print date("r", strtotime("+1 week"));
Tue, 27 Dec 2011 14:03:03 -0500
php > print date("r", strtotime("next month"));
Fri, 20 Jan 2012 14:04:20 -0500
php > print date("r", strtotime("next month", mktime(0, 0, 0)));
Fri, 20 Jan 2012 00:00:00 -0500
php > print date("r", strtotime("next month", mktime(0, 0, 0, 1, 31)));
Thu, 03 Mar 2011 00:00:00 -0500

可以在DateTime文檔頁(yè)面上找到完整的常量列表。由于我們很快就會(huì)處理時(shí)區(qū),讓我們?yōu)镻HP提供一個(gè)默認(rèn)時(shí)區(qū)。在您的php.ini配置文件(我有一個(gè)用于CLI,一個(gè)用于Apache)中,找到如下所示的部分:

php > $dt = new DateTime("now"); 
php > print $dt->format("r");
Tue, 20 Dec 2011 16:28:32 -0500
php > $dt = new DateTime("December 31 1999 12:12:12 EST");
php > print $dt->format("r");
Fri, 31 Dec 1999 12:12:12 -0500

當(dāng)沒(méi)有為date.timezone賦予值時(shí),PHP將盡力確定在服務(wù)器上設(shè)置的系統(tǒng)時(shí)區(qū)。您可以使用date_default_timezone_get()檢查PHP正在使用哪個(gè)值。

sean@beerhaus:~$ php -a
php > print time();
1324402770

讓我們將服務(wù)器的時(shí)區(qū)設(shè)置為UTC時(shí)間(date.timezone = UTC)并保存配置文件。您必須重新啟動(dòng)Apache或CLI shell才能查看更改。PHP DateTime對(duì)象包括一個(gè)內(nèi)部DateTimeZone類(lèi)實(shí)例來(lái)跟蹤時(shí)區(qū)。當(dāng)您創(chuàng)建DateTime的新實(shí)例時(shí),內(nèi)部DateTimeZone應(yīng)設(shè)置為在php.ini中提供的默認(rèn)值。

php > $unixTime = time();
php > print_r(getdate($unixTime));
Array
(
    [seconds] => 48
    [minutes] => 54
    [hours] => 12
    [mday] => 20
    [wday] => 2
    [mon] => 12
    [year] => 2011
    [yday] => 353
    [weekday] => Tuesday
    [month] => December
    [0] => 1324403688
)

可以在時(shí)區(qū)文檔頁(yè)面上找到可接受的時(shí)區(qū)名稱的完整列表。您現(xiàn)在可以看到當(dāng)兩個(gè)DateTime對(duì)象被賦予不同的時(shí)區(qū)時(shí),時(shí)間差異。例如,這是一個(gè)將UTC轉(zhuǎn)換為America/New_York(EST)時(shí)間的示例。

php > print date("r", $unixTime);
Tue, 20 Dec 2011 12:54:48 -0500

請(qǐng)注意12月份的-0500偏移量。如果您將時(shí)間值更改為夏季日期,例如7月1日,您會(huì)發(fā)現(xiàn)它知道夏令時(shí)(EDT)。

php > print date("m/d/y h:i:s a", $unixTime);
12/20/11 12:54:48 pm
php > print date("m/d/y h:i:s a");
12/20/11 01:12:11 pm
php > print date("jS of F Y", $unixTime);
20th of December 2011

將日期與MySQL和PHP一起使用

如果您在任何級(jí)別使用過(guò)MySQL,您可能已經(jīng)注意到開(kāi)箱即用的DATETIME類(lèi)型。它看起來(lái)和聞起來(lái)像一個(gè)日期,如果您說(shuō)它是一個(gè)日期,那么您是對(duì)的。但是,一旦您將其從MySQL中SELECT到PHP中,您實(shí)際上擁有的只是一個(gè)看起來(lái)像日期的字符串。它沒(méi)有時(shí)區(qū)意識(shí),并且在人類(lèi)需要查看它之前就已經(jīng)格式化好供人類(lèi)使用了。是的,我知道MySQL有很多日期格式化函數(shù),但我們也已經(jīng)在使用PHP了,正如您所看到的,PHP在處理日期格式方面非常出色。為什么我們還要從數(shù)據(jù)庫(kù)中直接格式化它呢?我們可能需要應(yīng)用一些不同的轉(zhuǎn)換和格式。最好只在人類(lèi)即將看到日期時(shí)才格式化日期。

<code>mktime(hour, minute, second, month, day, year, isDST)</code>

運(yùn)行這個(gè)簡(jiǎn)單的腳本,您可以看到您從DATETIME字段獲得的只是一個(gè)格式化的字符串,沒(méi)有時(shí)區(qū)信息。

php > print date("r", mktime(12, 0, 0, 1, 20, 1987));
Tue, 20 Jan 1987 12:00:00 -0500
php > print date("r", mktime(0, 0, 0, date("n"), date("j"), date("Y")));
Tue, 20 Dec 2011 00:00:00 -0500
php > print date("r", mktime(23, 59, 59, date("n"), date("j"), date("Y")));
Tue, 20 Dec 2011 23:59:59 -0500

DATETIME值是運(yùn)行MySQL的服務(wù)器的本地時(shí)間,無(wú)論該服務(wù)器的時(shí)區(qū)是什么。如果您所做的所有事情都只涉及一個(gè)時(shí)區(qū)中的一個(gè)服務(wù)器,那么DATETIME可能適合您的大部分需求,而且我非常羨慕您。那么,如何使用PHP和MySQL處理日期和時(shí)區(qū)呢?將日期存儲(chǔ)為Unix時(shí)間戳。您已經(jīng)知道Unix時(shí)間是自1970年1月1日UTC以來(lái)的秒數(shù),因此這為您提供了一個(gè)恒定的時(shí)區(qū),并且您可能已經(jīng)注意到PHP的許多日期/時(shí)間函數(shù)都是基于Unix時(shí)間戳的。在使用MySQL時(shí),我通常創(chuàng)建將日期存儲(chǔ)為INTEGER UNSIGNED的表列。插入日期時(shí),您可以使用PHP的time()或MySQL的UNIX_TIMESTAMP()。

<?php $startTime = mktime(0, 0, 0, 1, 1, date("y"));
$endTime  ?= mktime(0, 0, 0, date("m"), date("d"), date("y"));

如果您希望MySQL格式化日期,您可以這樣做。但是時(shí)間將位于運(yùn)行MySQL的服務(wù)器的時(shí)區(qū)中,我建議您在到達(dá)Web應(yīng)用程序的模板/視圖級(jí)別并準(zhǔn)備好讓人眼看到它之前,不要進(jìn)行任何類(lèi)型的格式化。

sean@beerhaus:~$ php -a
php > print time();
1324402770

在任何跨越時(shí)區(qū)的應(yīng)用程序中,您通常都會(huì)有一個(gè)表來(lái)跟蹤用戶的自定義時(shí)區(qū)設(shè)置,然后將其讀入$_SESSION值。假設(shè)您有一個(gè)如下所示的會(huì)話條目:

php > $unixTime = time();
php > print_r(getdate($unixTime));
Array
(
    [seconds] => 48
    [minutes] => 54
    [hours] => 12
    [mday] => 20
    [wday] => 2
    [mon] => 12
    [year] => 2011
    [yday] => 353
    [weekday] => Tuesday
    [month] => December
    [0] => 1324403688
)

您可以輕松地將存儲(chǔ)的Unix時(shí)間(以UTC為單位)轉(zhuǎn)換為特定用戶的時(shí)區(qū)中的任何日期。

php > print date("r", $unixTime);
Tue, 20 Dec 2011 12:54:48 -0500

這將導(dǎo)致日期“Mon, 16 Jan 2012 12:03:49 -0600”。-0600告訴您它比UTC落后6小時(shí),UTC的偏移量為0。如果我們將時(shí)區(qū)設(shè)置為America/Los_Angeles,則生成的日期將是:

php > print date("m/d/y h:i:s a", $unixTime);
12/20/11 12:54:48 pm
php > print date("m/d/y h:i:s a");
12/20/11 01:12:11 pm
php > print date("jS of F Y", $unixTime);
20th of December 2011

而America/New_York將產(chǎn)生:

<code>mktime(hour, minute, second, month, day, year, isDST)</code>

總結(jié)

處理日期和時(shí)區(qū)是許多程序員日常生活中的一部分,但是當(dāng)您可以使用PHP強(qiáng)大且易于使用的日期庫(kù)時(shí),無(wú)需擔(dān)心。您已經(jīng)了解了如何獲取Unix時(shí)間戳、如何將日期格式化為任何可以想象的格式、如何將日期的英文表示解析為時(shí)間戳、如何將一段時(shí)間添加到時(shí)間戳以及如何在時(shí)區(qū)之間進(jìn)行轉(zhuǎn)換。如果本文有兩個(gè)主要要點(diǎn),那就是1)堅(jiān)持使用Unix時(shí)間,以及2)在使用PHP和MySQL時(shí),堅(jiān)持使用UTC作為所有日期的基礎(chǔ)時(shí)區(qū)?;赨TC的所有時(shí)間的想法不僅適用于PHP和MySQL;它在任何語(yǔ)言中都被認(rèn)為是最佳實(shí)踐。如果您發(fā)現(xiàn)自己正在使用其他語(yǔ)言工作,那么您很有可能會(huì)對(duì)自己說(shuō):“該死的,他們?yōu)槭裁床荒芟馪HP那樣做?”

圖片來(lái)自Yakobchuk Vasyl / Shutterstock

(此處應(yīng)添加關(guān)于在PHP中處理日期和時(shí)間的常見(jiàn)問(wèn)題的FAQ部分,類(lèi)似于輸入文本中的FAQ部分。 由于篇幅限制,我沒(méi)有在此處添加。)

以上是在PHP和MySQL中與日期和時(shí)間合作的詳細(xì)內(nèi)容。更多信息請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(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集成開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

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

熱門(mén)話題

如何升級(jí)PHP版本? 如何升級(jí)PHP版本? Jun 27, 2025 am 02:14 AM

升級(jí)PHP版本其實(shí)不難,但關(guān)鍵在于操作步驟和注意事項(xiàng)。以下是具體方法:1.確認(rèn)當(dāng)前PHP版本及運(yùn)行環(huán)境,使用命令行或phpinfo.php文件查看;2.選擇適合的新版本并安裝,推薦8.2或8.1,Linux用戶用包管理器安裝,macOS用戶用Homebrew;3.遷移配置文件和擴(kuò)展,更新php.ini并安裝必要擴(kuò)展;4.測(cè)試網(wǎng)站是否正常運(yùn)行,檢查錯(cuò)誤日志確保無(wú)兼容性問(wèn)題。按照這些步驟操作,大多數(shù)情況都能順利完成升級(jí)。

PHP初學(xué)者指南:當(dāng)?shù)丨h(huán)境配置的詳細(xì)說(shuō)明 PHP初學(xué)者指南:當(dāng)?shù)丨h(huán)境配置的詳細(xì)說(shuō)明 Jun 27, 2025 am 02:09 AM

要設(shè)置PHP開(kāi)發(fā)環(huán)境,需選擇合適的工具并正確安裝配置。①最基礎(chǔ)的PHP本地環(huán)境需要三個(gè)組件:Web服務(wù)器(Apache或Nginx)、PHP本身和數(shù)據(jù)庫(kù)(如MySQL/MariaDB);②推薦初學(xué)者使用集成包如XAMPP或MAMP,它們簡(jiǎn)化了安裝流程,XAMPP適用于Windows和macOS,安裝后將項(xiàng)目文件放入htdocs目錄并通過(guò)localhost訪問(wèn);③MAMP適合Mac用戶,支持便捷切換PHP版本,但免費(fèi)版功能有限;④高級(jí)用戶可用Homebrew手動(dòng)安裝,在macOS/Linux系統(tǒng)中

在Linux上配置PHP開(kāi)發(fā)環(huán)境的步驟 在Linux上配置PHP開(kāi)發(fā)環(huán)境的步驟 Jun 30, 2025 am 01:57 AM

TosetupaPHPdevelopmentenvironmentonLinux,installPHPandrequiredextensions,setupawebserverlikeApacheorNginx,testwithaPHPfile,andoptionallyinstallMySQLandComposer.1.InstallPHPandextensionsviapackagemanager(e.g.,sudoaptinstallphpphp-mysqlphp-curlphp-mbst

如何將兩個(gè)PHP陣列組合獨(dú)特的值? 如何將兩個(gè)PHP陣列組合獨(dú)特的值? Jul 02, 2025 pm 05:18 PM

要合并兩個(gè)PHP數(shù)組并保留唯一值,有兩種主要方法。1.對(duì)于索引數(shù)組或僅需值去重的情況,使用array_merge和array_unique組合:先用array_merge($array1,$array2)合并數(shù)組,再用array_unique()去重,最終得到包含所有唯一值的新數(shù)組;2.對(duì)于關(guān)聯(lián)數(shù)組且希望保留第一個(gè)數(shù)組中的鍵值對(duì)時(shí),使用 運(yùn)算符:$result=$array1 $array2,這將確保第一個(gè)數(shù)組中的鍵不會(huì)被第二個(gè)數(shù)組覆蓋。這兩種方法分別適用于不同場(chǎng)景,根據(jù)是否需要保留鍵名或只關(guān)注

如何防止PHP中的跨站點(diǎn)偽造偽造(CSRF)攻擊? 如何防止PHP中的跨站點(diǎn)偽造偽造(CSRF)攻擊? Jun 28, 2025 am 02:25 AM

TopreventCSRFattacksinPHP,implementanti-CSRFtokens.1)Generateandstoresecuretokensusingrandom_bytes()orbin2hex(random_bytes(32)),savethemin$_SESSION,andincludetheminformsashiddeninputs.2)ValidatetokensonsubmissionbystrictlycomparingthePOSTtokenwiththe

PHP正則密碼強(qiáng)度 PHP正則密碼強(qiáng)度 Jul 03, 2025 am 10:33 AM

判斷密碼強(qiáng)度需結(jié)合正則與邏輯處理,基礎(chǔ)要求包括:1.長(zhǎng)度不少于8位;2.至少含小寫(xiě)字母、大寫(xiě)字母、數(shù)字;3.可加入特殊字符限制;進(jìn)階方面需避免連續(xù)重復(fù)字符及遞增/遞減序列,這需PHP函數(shù)檢測(cè);同時(shí)應(yīng)引入黑名單過(guò)濾常見(jiàn)弱密碼如password、123456;最終建議結(jié)合zxcvbn庫(kù)提升評(píng)估精度。

如何在PHP中牢固地處理文件上傳? 如何在PHP中牢固地處理文件上傳? Jul 08, 2025 am 02:37 AM

要安全處理PHP文件上傳需驗(yàn)證來(lái)源與類(lèi)型、控制文件名與路徑、設(shè)置服務(wù)器限制并二次處理媒體文件。1.驗(yàn)證上傳來(lái)源通過(guò)token防止CSRF并通過(guò)finfo_file檢測(cè)真實(shí)MIME類(lèi)型使用白名單控制;2.重命名文件為隨機(jī)字符串并根據(jù)檢測(cè)類(lèi)型決定擴(kuò)展名存儲(chǔ)至非Web目錄;3.PHP配置限制上傳大小及臨時(shí)目錄Nginx/Apache禁止訪問(wèn)上傳目錄;4.GD庫(kù)重新保存圖片清除潛在惡意數(shù)據(jù)。

在PHP中評(píng)論代碼 在PHP中評(píng)論代碼 Jul 18, 2025 am 04:57 AM

PHP注釋代碼常用方法有三種:1.單行注釋用//或#屏蔽一行代碼,推薦使用//;2.多行注釋用/.../包裹代碼塊,不可嵌套但可跨行;3.組合技巧注釋如用/if(){}/控制邏輯塊,或配合編輯器快捷鍵提升效率,使用時(shí)需注意閉合符號(hào)和避免嵌套。

See all articles