亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄
鑰匙要點
有想法嗎?問題?在評論中開火。
>我可以將Laravel的內(nèi)置驗證規(guī)則與我的自定義規(guī)則一起使用嗎?這可以通過在驗證邏輯中將驗證規(guī)則鏈接在一起來完成。例如,您可以使用“必需”規(guī)則來確保字段不是空的,然後使用自定義規(guī)則驗證數(shù)據(jù)的格式。
Laravel使您可以輕鬆在視圖中顯示驗證錯誤消息。當驗證失敗時,Laravel將用戶重定向到他們的先前位置,並在會話中存儲了所有驗證錯誤。然後,您可以使用$錯誤變量在視圖中顯示這些錯誤,該變量會自動通過Laravel提供。是的,Laravel允許您自定義驗證規(guī)則自定義錯誤消息。這可以通過在語言文件中定義自定義消息,然後在驗證邏輯中引用這些消息來完成。這使您可以靈活地根據(jù)應用程序的特定需求來量身定制錯誤消息。
Laravel提供了一種使用“點表示”驗證數(shù)組的方便方法。您可以指定要驗證的數(shù)組字段,然後將驗證規(guī)則應用於其。例如,如果您有一系列電子郵件,則可以使用“電子郵件”驗證規(guī)則在數(shù)組中驗證每個電子郵件。
如何在laravel中驗證文件上傳?圖像','Mimes'和“大小”。這些規(guī)則允許您驗證上載文件的類型和大小,以確保它符合您的應用程序的要求。
>如何處理Laravel中的驗證失?。?
首頁 後端開發(fā) php教程 Laravel中的數(shù)據(jù)驗證:正確的方式 - 自定義驗證器

Laravel中的數(shù)據(jù)驗證:正確的方式 - 自定義驗證器

Feb 20, 2025 am 11:35 AM

Data Validation in Laravel: The Right Way - Custom Validators

Laravel中的數(shù)據(jù)驗證:正確的方式 - 自定義驗證器

鑰匙要點

    可以擴展Laravel的內(nèi)置數(shù)據(jù)驗證軟件包,以為特定需求創(chuàng)建自定義驗證規(guī)則,例如驗證包含空格的全名代碼或PIN代碼。
  • 通過擴展Laravel的IlluminateValidationValidator類並添加新方法來驗證數(shù)據(jù)及其各自的錯誤消息,可以創(chuàng)建自定義驗證規(guī)則。
  • >
  • >新的驗證規(guī)則必須用“ validate”前綴和標題案例中的其餘名稱命名。驗證規(guī)則將在該方法所命名的內(nèi)容(沒有“ validate”前綴)的小寫中,每個單詞將被下劃線分開。 >
  • 創(chuàng)建自定義驗證規(guī)則後,需要創(chuàng)建服務提供商將這些規(guī)則綁定到Laravel的驗證包中。然後,通過app/config/app.php文件,Laravel加載了此服務提供商
  • 在上一部分中,我們學會瞭如何使用其內(nèi)置數(shù)據(jù)驗證軟件包驗證Laravel中的數(shù)據(jù),以及如何將我們的數(shù)據(jù)驗證抽象為特定的特定服務,以使代碼可重複使用Dry原理?,F(xiàn)在,我們可以通過其各自的驗證規(guī)則為我們的應用程序中的每個實體創(chuàng)建驗證服務,並將其註入到我們要驗證數(shù)據(jù)並輕鬆獲取和顯示錯誤等的任何位置等。
  • 但是,如果我們想要更多?
  • >
>

本教程的源代碼可在此處提供。您只需要在能夠運行此代碼之前運行Composer安裝即可在項目目錄內(nèi)安裝Laravel Framework。

需要更多

開箱即用的
> Laravel提供了許多有用且通用的驗證規(guī)則。但是,如果我們想要更多呢?如果我們需要更具體的東西怎麼辦?在我們的示例中,在TestFormValidator中,我們使用alpha_dash來驗證名稱,但這不是驗證全名的理想選擇。通常,一個人的全名將包括一個名字和姓氏,也許還有一個中間名。所有這些都將被一個空間隔開。同樣,如果我們想以形式驗證PIN代碼,我們不能使用Laravel提供的Alpha_num規(guī)則,我們也應該能夠允許其中的空間。 >

好吧,Laravel提供了輕鬆擴展其驗證軟件包並向其添加自定義驗證規(guī)則的選項。在RocketCandy/services/驗證/Create validatorextended.php中,並向其添加以下代碼:>

<span><span><?php
</span></span><span>
</span><span><span>namespace RocketCandy<span>\Services\Validation</span>;
</span></span><span>
</span><span><span>use Illuminate<span>\Validation\Validator</span> as IlluminateValidator;
</span></span><span>
</span><span><span>class ValidatorExtended extends IlluminateValidator {
</span></span><span>
</span><span>	<span>private $_custom_messages = array(
</span></span><span>		<span>"alpha_dash_spaces" => "The :attribute may only contain letters, spaces, and dashes.",
</span></span><span>		<span>"alpha_num_spaces" => "The :attribute may only contain letters, numbers, and spaces.",
</span></span><span>	<span>);
</span></span><span>
</span><span>	<span>public function __construct( $translator, $data, $rules, $messages = array(), $customAttributes = array() ) {
</span></span><span>		<span><span>parent::</span>__construct( $translator, $data, $rules, $messages, $customAttributes );
</span></span><span>
</span><span>		<span>$this->_set_custom_stuff();
</span></span><span>	<span>}
</span></span><span>
</span><span>	<span>/**
</span></span><span><span>	 * Setup any customizations etc
</span></span><span><span>	 *
</span></span><span><span>	 * <span>@return <span>void</span>
</span></span></span><span><span>	 */
</span></span><span>	<span>protected function _set_custom_stuff() {
</span></span><span>		<span>//setup our custom error messages
</span></span><span>		<span>$this->setCustomMessages( $this->_custom_messages );
</span></span><span>	<span>}
</span></span><span>
</span><span>	<span>/**
</span></span><span><span>	 * Allow only alphabets, spaces and dashes (hyphens and underscores)
</span></span><span><span>	 *
</span></span><span><span>	 * <span>@param <span>string</span> $attribute
</span></span></span><span><span>	 * <span>@param <span>mixed</span> $value
</span></span></span><span><span>	 * <span>@return <span>bool</span>
</span></span></span><span><span>	 */
</span></span><span>	<span>protected function validateAlphaDashSpaces( $attribute, $value ) {
</span></span><span>		<span>return (bool) preg_match( "/^[A-Za-z\s-_]+$/", $value );
</span></span><span>	<span>}
</span></span><span>
</span><span>	<span>/**
</span></span><span><span>	 * Allow only alphabets, numbers, and spaces
</span></span><span><span>	 *
</span></span><span><span>	 * <span>@param <span>string</span> $attribute
</span></span></span><span><span>	 * <span>@param <span>mixed</span> $value
</span></span></span><span><span>	 * <span>@return <span>bool</span>
</span></span></span><span><span>	 */
</span></span><span>	<span>protected function validateAlphaNumSpaces( $attribute, $value ) {
</span></span><span>		<span>return (bool) preg_match( "/^[A-Za-z0-9\s]+$/", $value );
</span></span><span>	<span>}
</span></span><span>
</span><span><span>}	//end of class
</span></span><span>
</span><span>
</span><span><span>//EOF</span></span>

>在這裡,我們的同類將Laravel的IlluminateValidationValidator類擴展並添加了兩種新方法(dialatealphadashspaces()和varteratealatealphanumspaces()),以驗證數(shù)據(jù)及其各自的錯誤消息與占位符:屬性:屬性中的attribute中的屬性將在其中替換為runavel,以替換為運行時的名稱。正在驗證的數(shù)據(jù)字段。

現(xiàn)在要注意的是我們?nèi)绾蚊椒?。所有驗證規(guī)則方法名稱必須具有驗證前綴,其餘的必須在標題案例中(當然沒有空格)。驗證規(guī)則將以命名方法的小寫(無驗證前綴)為小寫,每個單詞將被下劃線分開。因此,如果我們要添加alpha_dash_spaces驗證規(guī)則,那麼我們的相應方法將被命名為dialatealphadashspaces()。

因此,我們在此處添加了Alpha_Dash_spaces和Alpha_num_spaces驗證規(guī)則。 alpha_dash_spaces將允許字母,破折號(連字符和下劃線)和空格,而Alpha_num_spaces將僅允許字母,數(shù)字(數(shù)字0-9)和空格。

>

>我們尚未完成此課程,此類僅擴展了Laravel的驗證類。我們?nèi)匀槐仨毷筁aravel認識到它,以便當我們將新規(guī)則添加到上面的Vaidation服務中時,Laravel將知道如何根據(jù)這些規(guī)則進行驗證。

laravel文檔指出我們可以做到這一點:

<span>Validator<span>::</span>resolver( function( $translator, $data, $rules, $messages ) {
</span>	<span>return new <span>\RocketCandy\Services\Validation\ValidatorExtended</span>( $translator, $data, $rules, $messages );
</span><span>} );</span>
並將其粘貼在app/start/global.php中,或者在應用程序目錄中創(chuàng)建一個新文件,然後將該文件加載到app/start/global.php中。但這看起來並不干淨,修改文件我們不需要修改,在這里和那裡都貼上碎屑和碎片。不,我們寧願將所有這些相關的代碼放在一起,因此我們將創(chuàng)建一個服務提供商,並將我們的自定義驗證規(guī)則粘合到Laravel的驗證程序包中。

create verialationExtensionserviceProvider.php rocketcandy/services/verasonation/incem of tastectenserviceprovider.php/添加以下代碼:>

如果您已經(jīng)在Laravel創(chuàng)建了一個服務提供商,則通常使用register()方法來執(zhí)行所需的任何綁定。這是我們在這裡擴展的抽像類LimuminateUpporterServiceProvider中唯一的抽象方法。我們之所以無法將驗證擴展粘合到register()中,是因為一旦服務提供商加載了Laravel,就會觸發(fā)它,我們將遇到一個拋出的異常,因為Laravel以後將其驗證套件初始化,因此我們將稍後初始化其驗證包,因此我們將嘗試使用不存在的對象擴展不存在的東西。另一方面,啟動()方法是在請求路由之前觸發(fā)的,因此我們可以將其安全地粘貼到Laravel的驗證包中。
<span><span><?php
</span></span><span>
</span><span><span>namespace RocketCandy<span>\Services\Validation</span>;
</span></span><span>
</span><span><span>use Illuminate<span>\Support\ServiceProvider</span>;
</span></span><span>
</span><span><span>class ValidationExtensionServiceProvider extends ServiceProvider {
</span></span><span>
</span><span>	<span>public function register() {}
</span></span><span>
</span><span>	<span>public function boot() {
</span></span><span>		<span>$this->app->validator->resolver( function( $translator, $data, $rules, $messages = array(), $customAttributes = array() ) {
</span></span><span>			<span>return new ValidatorExtended( $translator, $data, $rules, $messages, $customAttributes );
</span></span><span>		<span>} );
</span></span><span>	<span>}
</span></span><span>
</span><span><span>}	//end of class
</span></span><span>
</span><span>
</span><span><span>//EOF</span></span>
>

>現(xiàn)在,我們只需要告訴Laravel加載此服務提供商,我們將全部設置。打開您的應用程序/config/app.php,在提供商數(shù)組中添加以下內(nèi)容:>

<span><span><?php
</span></span><span>
</span><span><span>namespace RocketCandy<span>\Services\Validation</span>;
</span></span><span>
</span><span><span>use Illuminate<span>\Validation\Validator</span> as IlluminateValidator;
</span></span><span>
</span><span><span>class ValidatorExtended extends IlluminateValidator {
</span></span><span>
</span><span>	<span>private $_custom_messages = array(
</span></span><span>		<span>"alpha_dash_spaces" => "The :attribute may only contain letters, spaces, and dashes.",
</span></span><span>		<span>"alpha_num_spaces" => "The :attribute may only contain letters, numbers, and spaces.",
</span></span><span>	<span>);
</span></span><span>
</span><span>	<span>public function __construct( $translator, $data, $rules, $messages = array(), $customAttributes = array() ) {
</span></span><span>		<span><span>parent::</span>__construct( $translator, $data, $rules, $messages, $customAttributes );
</span></span><span>
</span><span>		<span>$this->_set_custom_stuff();
</span></span><span>	<span>}
</span></span><span>
</span><span>	<span>/**
</span></span><span><span>	 * Setup any customizations etc
</span></span><span><span>	 *
</span></span><span><span>	 * <span>@return <span>void</span>
</span></span></span><span><span>	 */
</span></span><span>	<span>protected function _set_custom_stuff() {
</span></span><span>		<span>//setup our custom error messages
</span></span><span>		<span>$this->setCustomMessages( $this->_custom_messages );
</span></span><span>	<span>}
</span></span><span>
</span><span>	<span>/**
</span></span><span><span>	 * Allow only alphabets, spaces and dashes (hyphens and underscores)
</span></span><span><span>	 *
</span></span><span><span>	 * <span>@param <span>string</span> $attribute
</span></span></span><span><span>	 * <span>@param <span>mixed</span> $value
</span></span></span><span><span>	 * <span>@return <span>bool</span>
</span></span></span><span><span>	 */
</span></span><span>	<span>protected function validateAlphaDashSpaces( $attribute, $value ) {
</span></span><span>		<span>return (bool) preg_match( "/^[A-Za-z\s-_]+$/", $value );
</span></span><span>	<span>}
</span></span><span>
</span><span>	<span>/**
</span></span><span><span>	 * Allow only alphabets, numbers, and spaces
</span></span><span><span>	 *
</span></span><span><span>	 * <span>@param <span>string</span> $attribute
</span></span></span><span><span>	 * <span>@param <span>mixed</span> $value
</span></span></span><span><span>	 * <span>@return <span>bool</span>
</span></span></span><span><span>	 */
</span></span><span>	<span>protected function validateAlphaNumSpaces( $attribute, $value ) {
</span></span><span>		<span>return (bool) preg_match( "/^[A-Za-z0-9\s]+$/", $value );
</span></span><span>	<span>}
</span></span><span>
</span><span><span>}	//end of class
</span></span><span>
</span><span>
</span><span><span>//EOF</span></span>

現(xiàn)在,打開app/rocketcandy/services/validation/testformvalidator.php並更新$規(guī)則屬性,以便看起來像這樣:

<span>Validator<span>::</span>resolver( function( $translator, $data, $rules, $messages ) {
</span>	<span>return new <span>\RocketCandy\Services\Validation\ValidatorExtended</span>( $translator, $data, $rules, $messages );
</span><span>} );</span>

我們用alpha_dash_spaces替換了名稱的alpha_dash驗證規(guī)則,用alpha_num_spaces替換了pin_code的alpha_num。

現(xiàn)在,如果我們導航到http:// /dummy/create,我們可以在“名稱和PIN代碼”字段中輸入空格,而沒有任何問題,並且數(shù)據(jù)將在提交上傳遞驗證。

>

摘要

因此,在這兩個部分教程中,我們學會了:

>

    >使用其內(nèi)置的數(shù)據(jù)驗證軟件包驗證Laravel中的數(shù)據(jù)。 >
  1. >使用面向?qū)ο蟮姆椒▽?shù)據(jù)驗證抽象為其自己的獨立服務(
  2. 單一責任
  3. 成就已解鎖)。 >創(chuàng)建我們自己的自定義異常,以與我們的數(shù)據(jù)驗證服務一起使用(而不是使用true/false boolean值)以及如何存儲和檢索它們的錯誤。
  4. >在控制器中註入我們的數(shù)據(jù)驗證服務並使用它。
  5. >
  6. >使用我們的自定義驗證規(guī)則擴展了Laravel的驗證軟件包,並使用服務提供商自動加載它。
  7. >腳註
  8. 為了將本教程保留到我將驗證服務注入我們的控制器並在此處使用的點。在一個真實的項目中,您很可能會在其他地方使用驗證服務,在此處處理數(shù)據(jù)消毒和存儲。理想情況下,控制器應不含脂肪,並且最少的代碼。

有想法嗎?問題?在評論中開火。

>關於Laravel數(shù)據(jù)驗證和自定義驗證器的常見問題


>使用Laravel進行數(shù)據(jù)驗證有什麼好處?它提供了各種驗證規(guī)則,這些規(guī)則可以輕鬆地應用於您的數(shù)據(jù),以確保在處理之前符合所需的標準。 Laravel的驗證系統(tǒng)還允許自定義驗證規(guī)則,使您能夠定義自己的數(shù)據(jù)驗證標準。當您需要以Laravel的內(nèi)置驗證規(guī)則不涵蓋的方式驗證數(shù)據(jù)時。您使用驗證器:: Extend方法創(chuàng)建自定義驗證規(guī)則。此方法採用兩個參數(shù):驗證規(guī)則的名稱和接收三個參數(shù)的閉合:屬性名稱,屬性值和失敗回調(diào)。在關閉中,您可以為自定義驗證規(guī)則定義邏輯。如果驗證失敗,則應通過適當?shù)腻e誤消息調(diào)用失敗回調(diào)。

>我可以將Laravel的內(nèi)置驗證規(guī)則與我的自定義規(guī)則一起使用嗎?這可以通過在驗證邏輯中將驗證規(guī)則鏈接在一起來完成。例如,您可以使用“必需”規(guī)則來確保字段不是空的,然後使用自定義規(guī)則驗證數(shù)據(jù)的格式。

>

如何在laravel中顯示驗證錯誤消息?

Laravel使您可以輕鬆在視圖中顯示驗證錯誤消息。當驗證失敗時,Laravel將用戶重定向到他們的先前位置,並在會話中存儲了所有驗證錯誤。然後,您可以使用$錯誤變量在視圖中顯示這些錯誤,該變量會自動通過Laravel提供。是的,Laravel允許您自定義驗證規(guī)則自定義錯誤消息。這可以通過在語言文件中定義自定義消息,然後在驗證邏輯中引用這些消息來完成。這使您可以靈活地根據(jù)應用程序的特定需求來量身定制錯誤消息。

>如何驗證Laravel中的數(shù)組?

Laravel提供了一種使用“點表示”驗證數(shù)組的方便方法。您可以指定要驗證的數(shù)組字段,然後將驗證規(guī)則應用於其。例如,如果您有一系列電子郵件,則可以使用“電子郵件”驗證規(guī)則在數(shù)組中驗證每個電子郵件。

>

>我可以在laravel中使用條件驗證規(guī)則嗎? Laravel允許您使用條件驗證規(guī)則。這意味著您只有在滿足其他條件時才可以應用某些驗證規(guī)則??梢允褂抿炞C器實例上的有時方法來完成此操作。

如何在laravel中驗證文件上傳?圖像','Mimes'和“大小”。這些規(guī)則允許您驗證上載文件的類型和大小,以確保它符合您的應用程序的要求。

>

>我可以在表單請求中使用自定義驗證規(guī)則嗎?表單請求中的自定義驗證規(guī)則。這可以通過在表單請求類的規(guī)則方法中定義規(guī)則來完成。然後,您可以在驗證表單請求數(shù)據(jù)時使用這些規(guī)則。

>

>如何處理Laravel中的驗證失???

>

>當驗證失敗在Laravel中時,它會自動將用戶重定向到他們的先前位置在會話中存儲了所有驗證錯誤。然後,您可以在視圖中處理這些錯誤,以適合您的應用程序的方式顯示給用戶。 >

以上是Laravel中的數(shù)據(jù)驗證:正確的方式 - 自定義驗證器的詳細內(nèi)容。更多資訊請關注PHP中文網(wǎng)其他相關文章!

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

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

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

Dreamweaver CS6

Dreamweaver CS6

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

SublimeText3 Mac版

SublimeText3 Mac版

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

PHP正則密碼強度 PHP正則密碼強度 Jul 03, 2025 am 10:33 AM

判斷密碼強度需結合正則與邏輯處理,基礎要求包括:1.長度不少於8位;2.至少含小寫字母、大寫字母、數(shù)字;3.可加入特殊字符限制;進階方面需避免連續(xù)重複字符及遞增/遞減序列,這需PHP函數(shù)檢測;同時應引入黑名單過濾常見弱密碼如password、123456;最終建議結合zxcvbn庫提升評估精度。

PHP變量範圍解釋了 PHP變量範圍解釋了 Jul 17, 2025 am 04:16 AM

PHP變量作用域常見問題及解決方法包括:1.函數(shù)內(nèi)部無法訪問全局變量,需使用global關鍵字或參數(shù)傳入;2.靜態(tài)變量用static聲明,只初始化一次並在多次調(diào)用間保持值;3.超全局變量如$_GET、$_POST可在任何作用域直接使用,但需注意安全過濾;4.匿名函數(shù)需通過use關鍵字引入父作用域變量,修改外部變量則需傳遞引用。掌握這些規(guī)則有助於避免錯誤並提升代碼穩(wěn)定性。

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

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

在PHP中評論代碼 在PHP中評論代碼 Jul 18, 2025 am 04:57 AM

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

發(fā)電機如何在PHP中工作? 發(fā)電機如何在PHP中工作? Jul 11, 2025 am 03:12 AM

AgeneratorinPHPisamemory-efficientwaytoiterateoverlargedatasetsbyyieldingvaluesoneatatimeinsteadofreturningthemallatonce.1.Generatorsusetheyieldkeywordtoproducevaluesondemand,reducingmemoryusage.2.Theyareusefulforhandlingbigloops,readinglargefiles,or

撰寫PHP評論的提示 撰寫PHP評論的提示 Jul 18, 2025 am 04:51 AM

寫好PHP註釋的關鍵在於明確目的與規(guī)範,註釋應解釋“為什麼”而非“做了什麼”,避免冗餘或過於簡單。 1.使用統(tǒng)一格式,如docblock(/*/)用於類、方法說明,提升可讀性與工具兼容性;2.強調(diào)邏輯背後的原因,如說明為何需手動輸出JS跳轉;3.在復雜代碼前添加總覽性說明,分步驟描述流程,幫助理解整體思路;4.合理使用TODO和FIXME標記待辦事項與問題,便於後續(xù)追蹤與協(xié)作。好的註釋能降低溝通成本,提升代碼維護效率。

快速PHP安裝教程 快速PHP安裝教程 Jul 18, 2025 am 04:52 AM

ToinstallPHPquickly,useXAMPPonWindowsorHomebrewonmacOS.1.OnWindows,downloadandinstallXAMPP,selectcomponents,startApache,andplacefilesinhtdocs.2.Alternatively,manuallyinstallPHPfromphp.netandsetupaserverlikeApache.3.OnmacOS,installHomebrew,thenrun'bre

學習PHP:初學者指南 學習PHP:初學者指南 Jul 18, 2025 am 04:54 AM

易於效率,啟動啟動tingupalocalserverenverenvirestoolslikexamppandacodeeditorlikevscode.1)installxamppforapache,mysql,andphp.2)uscodeeditorforsyntaxssupport.3)

See all articles