PHP001

来源:https://www.cnblogs.com/sin90/archive/2022/07/24/16515593.html
-Advertisement-
Play Games

PHP變數規則 變數以$符號開頭,其後是變數的名稱; 變數名稱必須已字母或者下劃線開頭; 變數名稱不能以數字開頭; 變數名稱只能包含字母數字字元和下劃線(A-z、0-9以及 _ ); 變數名稱對大小寫敏感($y和$Y是兩個不同的變數) 註釋:PHP變數名稱對大小寫敏感 創建PHP變數 PHP變數沒有 ...


PHP變數規則

  • 變數以$符號開頭,其後是變數的名稱;
  • 變數名稱必須已字母或者下劃線開頭;
  • 變數名稱不能以數字開頭;
  • 變數名稱只能包含字母數字字元和下劃線(A-z、0-9以及 _ );
  • 變數名稱對大小寫敏感($y和$Y是兩個不同的變數)

註釋:PHP變數名稱對大小寫敏感

創建PHP變數

PHP變數沒有創建變數的命令。變數會在首次為其賦值時被創建。

PHP是一門類型鬆散的語言

註意我們不必告知PHP變數的數據類型。

PHP根據它的值,自動把變數轉換為正確的數據類型。

在諸如C和C++以及Java之類的語言中,程式員必須在使用變數之前聲明他的名稱和類型。

PHP變數作用域

  • local(局部)
  • global(全局)
  • static(靜態)

PHP global關鍵詞

global關鍵詞用於在函數內訪問全局變數,即可以在函數內部變數前面使用global關鍵詞。

PHP同時在名為$GLOBALS[index]的數組中存儲了所有的全局變數。下標存有變數名。這個數組在函數內也可以訪問,並能夠用於直接更新全局變數。如:

image-20220713121144073

image-20220713121215734

PHP static關鍵詞

通常在函數完成/執行後,會刪除所有的變數。不過,有時我需要不刪除某個局部變數,可以在函數內首次聲明變數時使用static關鍵詞。

PHP echo和print語句

  • echo 能夠輸出一個以上的字元串;
  • print 只能輸出一個字元串,並始終返回1。

PHP數據類型

var_dump() 返回變數的數據類型和值。

PHP數組的數據類型:

image-20220715115951540

PHP字元串函數

strlen():返回字元串的長度。

str_word_count() : 對字元串中的 單詞進行計數。

strrev() : 反轉字元串。

strpos() :用於檢索字元串內指定的字元或者文本,如果找到匹配,則會返迴首個匹配的字元位置。如果未找到匹配,則將返回 FALSE。

str_replace() 函數用一些字元串替換字元串中的另一些字元。

PHP常量

常量名稱前面沒有$符號,與變數不同,常量貫穿整個腳本是自動全局的。

如需設置常量,請使用 define() 函數 - 它使用三個參數:

  1. 首個參數定義常量的名稱
  2. 第二個參數定義常量的值
  3. 可選的第三個參數規定常量名是否對大小寫不敏感。預設是 false。

image-20220715121110644

PHP字元串運算符

image-20220715175041212

PHP比較運算符

PHP比較運算符用於比較兩個值(數字或者字元串):

image-20220715185911815

image-20220715190016037

PHP數組運算符

image-20220715190213269

PHP foreach迴圈

foreach迴圈只適用於數組,並用於便利數組中的每一個鍵/值對。

每進行一次迴圈迭代,當前數組元素的值就會被賦值給 $value 變數,並且數組指針會逐一地移動,直到到達最後一個數組元素。

PHP函數

函數名對大小寫不敏感。

PHP數組

在 PHP 中,有三種數組類型:

  • 索引數組 - 帶有數字索引的數組

    image-20220716183048179

  • 關聯數組 - 帶有指定鍵的數組

image-20220716183127190

  • 多維數組 - 包含一個或多個數組的數組

count()函數用於返回數組的長度。

PHP中數組的排序函數

  • sort() - 以升序對數組排序
  • rsort() - 以降序對數組排序
  • asort() - 根據值,以升序對關聯數組進行排序
  • ksort() - 根據鍵,以升序對關聯數組進行排序
  • arsort() - 根據值,以降序對關聯數組進行排序
  • krsort() - 根據鍵,以降序對關聯數組進行排序

PHP全局變數——超全局變數

超全局變數在PHP4.1.0中引入,是在全部作用域中始終可用的內置變數。在函數或方法中無需執行 global $variable; 就可以訪問它們。https://www.w3school.com.cn/php/php_superglobals.asp

  • $GLOBALS

$GLOBALS 這種全局變數用於在 PHP 腳本中的任意位置訪問全局變數(從函數或方法中均可)。

PHP 在名為 $GLOBALS[index] 的數組中存儲了所有全局變數。變數的名字就是數組的鍵。

  • $_SERVER 保存關於報頭、路徑和腳本位置的信息。

  • $_REQUEST 用於收集 HTML 表單提交的數據。

  • $_POST 廣泛用於收集提交 method="post" 的 HTML 表單後的表單數據。$_POST 也常用於傳遞變數。

  • $_GET 可用於收集提交 HTML 表單 (method="get") 之後的表單數據; 也可以收集 URL 中的發送的數據。

  • $_FILES

  • $_ENV

  • $_COOKIE

  • $_SESSION

PHP 超全局變數 $_GET 和 $_POST 用於收集表單數據(form-data)。

GET vs. POST

GET 和 POST 都創建數組(例如,array( key => value, key2 => value2, key3 => value3, ...))。此數組包含鍵/值對,其中的鍵是表單控制項的名稱,而值是來自用戶的輸入數據。

GET 和 POST 被視作 $_GET 和 $_POST。它們是超全局變數,這意味著對它們的訪問無需考慮作用域 - 無需任何特殊代碼,您能夠從任何函數、類或文件訪問它們。

$_GET 是通過 URL 參數傳遞到當前腳本的變數數組。

$_POST 是通過 HTTP POST 傳遞到當前腳本的變數數組。

何時使用 GET?

通過 GET 方法從表單發送的信息對任何人都是可見的(所有變數名和值都顯示在 URL 中)。GET 對所發送信息的數量也有限制。限制在大約 2000 個字元。不過,由於變數顯示在 URL 中,把頁面添加到書簽中也更為方便。

GET 可用於發送非敏感的數據。

何時使用 POST?

通過 POST 方法從表單發送的信息對其他人是不可見的(所有名稱/值會被嵌入 HTTP 請求的主體中),並且對所發送信息的數量也無限制

此外 POST 支持高階功能,比如在向伺服器上傳文件時進行 multi-part 二進位輸入。

不過,由於變數未顯示在 URL 中,也就無法將頁面添加到書簽。

什麼是 $_SERVER["PHP_SELF"] 變數?

$_SERVER["PHP_SELF"] 是一種超全局變數,它返回當前執行腳本的文件名。該變數能夠被黑客利用進行XSS攻擊。

因此,$_SERVER["PHP_SELF"] 將表單數據發送到頁面本身,而不是跳轉到另一張頁面。這樣,用戶就能夠在表單頁面獲得錯誤提示信息。

image-20220724205301402

什麼是 htmlspecialchars() 函數?

htmlspecialchars() 函數把特殊字元轉換為 HTML 實體。這意味著 < 和 > 之類的 HTML 字元會被替換為 < 和 > 。這樣可防止攻擊者通過在表單中註入 HTML 或 JavaScript 代碼(跨站點腳本攻擊)對代碼進行利用。

image-20220724205138758

在用戶提交該表單時,我們還要做兩件事:

  1. (通過 PHP trim() 函數)去除用戶輸入數據中不必要的字元(多餘的空格、製表符、換行)
  2. (通過 PHP stripslashes() 函數)刪除用戶輸入數據中的反斜杠(\)

我們可以創建一個test_input() 函數,用於檢查每個 $_POST 變數

image-20220724205412992

preg_match() 函數

檢索字元串的模式,如果模式存在則返回 true,否則返回 false。例如檢查輸入的欄位是否包含字母和空格。

以下的代碼用於驗證URL:

image-20220724213223236

PHP ——如何在用戶提交表單後保留輸入欄位中的值

image-20220724213830873

(PHP基礎教程和PHP表單部分到此結束!!!)

多看多學!!!
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1.下載 下載地址:Download Visual Studio Code VS code,全稱Visual Studio Code,是Microsoft(微軟)在2015年4月30日發佈的,編寫現代web和跨平臺源代碼編輯器。比如說,可以用來寫一個網頁的html+css代碼等。 VS code 優 ...
  • 一.href="#+id名" 可以快速跳轉 如: href="#two" id="two"快速跳 二. div大塊 自動換行 span小塊 不自動換行 三. 註釋標簽 ctrl+/ &lt &gt <和> 四.表格 表格形式 <table align="center" border=1 cellsp ...
  • 自上月從上海結束工作回來 在家閑來無事 想寫點東西打發時間 也順便學習學習新的技術。偶然發現了 pinia 據說比vuex好用些 所以便搭了個demo嘗試著用了下 感覺確實不錯,於是便有了這篇隨筆。 那麼廢話不多說 直接開始吧。(附pinia官網地址:https://pinia.web3doc.to ...
  • 樹形數據的一些相關處理方法 以下方法待補充優化😁... // 用於測試的樹形數據 const treeData = [ { id: '1', name: '測試1', pId: '0', children: [ { id: '11', name: '測試11', pId: '1', childre ...
  • 1.常用標簽 1.基礎標簽 <!DOCTYPE> 定義文檔類型。 <html> 定義 HTML 文檔。 <head> 定義關於文檔的信息。 <title> 定義文檔的標題。 <body> 定義文檔的主體。 <h1> to <h6> 定義 HTML 標題。 <p> 定義段落。 <br> 定義簡單的折行 ...
  • JavaScript進階內容——jQuery 我們在前面的文章中已經掌握了JavaScript的全部內容,現在讓我們瞭解一下JavaScript庫 這篇文章主要是為了為大家大致講解JavaScript庫以及使用方法,本篇不會完全講解jQuery的全部語法 如果希望完全掌握,可以參考網站jQuery ...
  • 概述 ​ SpringBoot中集成官方的第三方組件是通過在POM文件中添加組件的starter的Maven依賴來完成的。添加相關的Maven依賴之後,會引入具體的jar包,在SpringBoot啟動的時候會根據預設自動裝配的配置類的註入條件判斷是否註入該自動配置類到Spring容器中。自動配置類中 ...
  • 貪心演算法 一、 演算法概述 1、 簡介 貪心演算法,又稱貪婪演算法,是一種在每一步選擇中都採取在當前狀態下最好或最優(即最有利)的選擇,從而希望導致結果是最好或最優的演算法。[1]比如在旅行推銷員問題中,如果旅行員每次都選擇最近的城市,那這就是一種貪心演算法。 貪心演算法在有最優子結構的問題中尤為有效。最優子結 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...