日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

【CyberSecurityLearning 47】PHP 数组

發(fā)布時間:2025/3/15 php 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【CyberSecurityLearning 47】PHP 数组 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

數(shù)組

數(shù)組中的元素:

數(shù)組里面也可以包含數(shù)組(多維數(shù)組/二維數(shù)組)

數(shù)組的分類

數(shù)組的創(chuàng)建

第一種創(chuàng)建數(shù)組的方式

第二種創(chuàng)建數(shù)組的方式

數(shù)組元素的訪問

數(shù)組的遍歷

索引數(shù)組遍歷(for循環(huán))

關(guān)聯(lián)數(shù)組遍歷(foreach)

預(yù)定義超全局數(shù)組變量(重要!)

$_GET(用來接收get方式傳遞過來的參數(shù))★

實踐:寫一個簡單的登錄頁面

get.php代碼:

login.php代碼:

isset函數(shù)

$_POST(★)

login.php代碼

post.php代碼

$_POST上傳文件(★)


數(shù)組

是變量的一種類型(但是不是基本變量類型)
是一種復(fù)合的 數(shù)據(jù)類型
鍵值對(鍵名key ??? 鍵值value)


數(shù)組中的元素:

(除了對象,可以存放任意數(shù)據(jù)類型的數(shù)據(jù)!)數(shù)組里面也可以存放數(shù)組

<?php $name="AJEST"; $age=24; $sex=true; $grade=78.9; //把上面四個變量放到同一個變量里面去 $stu[]="AJEST";//[]實際上是一個運算符 $stu[]=24; $stu[]=true; $stu[]=78.9; //echo $stu; echo只能輸出簡單的數(shù)據(jù)類型 echo "<pre>";//pre標簽格式化輸出 //print_r($stu);//print_r是輸出一個數(shù)組 var_dump($stu); ?>

?

數(shù)組里面也可以包含數(shù)組(多維數(shù)組/二維數(shù)組)

<?php $students=array(1901 => array("AJEST",24,true,79.9),1902 => array("MDM",23,false,61),1903 => array("XL",25,true,59.9) ); print_r($students); //想取得第一個學(xué)生的成績 echo $students[1901][3]; ?>

?

<html><title>學(xué)生基本信息表</title><meta charset="utf-8"> </html><?php $students=array(1901 => array('name' => "GGG",'age' => 24,'esx' => true,'grade' => 79.9),1902 => array("MDM",23,false,61),1903 => array("XL",25,true,59.9) ); echo "<table border=3>"; echo "<tr><td>姓名</td><td>年齡</td><td>性別</td><td>成績</td> </tr>";foreach($students as $v){echo "<tr>";foreach($v as $vv){if($vv === true){$vv = "男";}if($vv === false){$vv = "女";}echo "<td>".$vv."</td>";}echo "</tr>"; } echo "</table>"; ?>

?

數(shù)組的分類

鍵值對? ? ?整型的正數(shù)? ? ? ? ? ?? ?? 叫做索引數(shù)組

鍵值對? ? ?具有語義的字符串 ???? 叫做關(guān)聯(lián)數(shù)組

?

數(shù)組的創(chuàng)建

第一種創(chuàng)建數(shù)組的方式

$stu[]

1.在未指定鍵名的情況下,給數(shù)組賦值,鍵名從最大的開始計數(shù),依次增大

2.可以手動給鍵名

<?php $stu[10]="AJEST";//[]實際上是一個運算符 $stu[20]=24; $stu[30]=true; $stu[]=78.9; echo "<pre>";//pre標簽格式化輸出 var_dump($stu); ?>

<?php $stu['name']="AJEST";//[]實際上是一個運算符 $stu['age']=24; $stu['sex']=true; $stu['grade']=78.9; $stu[]="Content"; echo "<pre>";//pre標簽格式化輸出 //print_r($stu);//print_r是輸出一個數(shù)組 var_dump($stu); ?>

第二種創(chuàng)建數(shù)組的方式

array()

<pre> <?php $stu1=array("AJEST",24,true,78.9);//[]實際上是一個運算符 print_r($stu1); $stu2=array('name' => "MDM",'age' => "23",'sex' => false,'grade' =>99.9,'Something like this!' ); print_r($stu2); ?>

?

數(shù)組元素的訪問

1、讀取

2、添加(不要給數(shù)組中原來存在的鍵名,如果給的鍵名已存在就是修改)

3、修改

<pre> <?php $stu1=array("AJEST",24,true,78.9);//[]實際上是一個運算符 print_r($stu1); $stu2=array('name' => "MDM",'age' => "23",'sex' => false,'grade' =>99.9,'Something like this!' );echo $stu1[0];//AJEST 查詢名字 $stu1[3]=100;//成績改成100 print_r($stu1);?>

數(shù)組的遍歷

for循環(huán)只適用于有規(guī)律的索引數(shù)組

foreach語言結(jié)構(gòu)

索引數(shù)組遍歷(for循環(huán))

?

<?php $stu1=array("AJEST",24,true,78.9); //count()--計算數(shù)組中的單元數(shù)目,或?qū)ο笾袑傩缘膫€數(shù) for($i=0;$i<count($stu1);$i++) {echo $stu1[$i]."<br/>"; //中括號是運算符 } ?>

關(guān)聯(lián)數(shù)組遍歷(foreach)

<?php $stu1=array('name'=>"MDM",'age'=>"23",'sex'=>false,'grade'=>99.9,'something like this!' ); //foreach就是用來遍歷數(shù)組的,foreach循環(huán)每執(zhí)行一次就訪問鍵值對(foreash有個自己的計數(shù)器,編程者不可見)智能 //數(shù)組中有多少個鍵值對,它就會循環(huán)幾次 foreach($stu1 as $key=>$value){ //as就相當于把數(shù)組作拆分,$key這個變量名是自己定的,這是一種語言結(jié)構(gòu)echo $key." => ".$value."<br/>"; } ?>

foreach是我們最重要的一種語言結(jié)構(gòu),重中之重!

預(yù)定義超全局數(shù)組變量(重要!)

php定義好了的,可以直接使用
函數(shù)內(nèi)部或者外部都能使用

??? $GLOBALS

??? 引用全局作用域中可以使用的全局變量

??? $_SERVER? ?

??? 一個包含諸如頭信息(header)、路徑(path)、以及腳本位置(script locations)等等信息的數(shù)組

??? $_GET?? (用來接收url傳過來的參數(shù))

??? 通過URL參數(shù)傳遞給當前腳本的變量的數(shù)組

??? $_POST? ?

??? 當 HTTP POST 請求的 Content-Type 是 application/x-www-form-urlencoded 或 multipart/form-data 時,會將變量以關(guān)聯(lián)數(shù)組形式傳入當前腳本。

??? $_FILES

??? 通過HTTP POST方式上傳到當前腳本的項目的數(shù)組

??? $_COOKIE

??? 通過HTTP Cookies 的方式傳遞給當前腳本的變量的數(shù)組

??? $_SESSION

??? 當前腳本可用SESSION變量的數(shù)組

??? $_REQUEST

??? 默認情況下包含了 $_GET, $_POST 和 $_COOKIE 的數(shù)組

??? $_ENV

??? 通過環(huán)境方式傳遞給當前腳本的變量的數(shù)組

$_GET(用來接收get方式傳遞過來的參數(shù))★

<?php var_dump($_GET); ?>

接受來自的URL的傳遞參數(shù)

http://localhost/PHP/array/get.php?name=GGG(我們這么通過get方式傳遞參數(shù)?我們需要在這個腳本后面加一個問號

http://192.168.1.132/PHP/array/get.php?name=GGG&passwd=123456(傳兩個參數(shù)需要用&來連接)

參數(shù)的名會變成鍵名

參數(shù)的值會變成鍵值

實踐:寫一個簡單的登錄頁面

get.php代碼:

<meta charset="utf-8"> <?php //是否點擊登錄按鈕 if(isset($_GET['userSubmit'])){if(isset($_GET['userName']) && $_GET['userName']=="AJEST"&& isset($_GET['userPass']) && $_GET['userPass']=="123456"){echo "welcome,".$_GET['userName'];}else{echo "用戶名或者密碼錯誤<a href='./login.html'>請重新登錄</a>";} }else{echo "登錄錯誤,請重新登錄<a href='./login.html'>請通過表單重新登錄</a>"; } ?>

login.php代碼:

<html> <meta charset="utf-8"> <h1>用戶登錄</h1> # action是提交到哪個頁面(提交到當前路徑下的get.php),提交方式是GET,target="_blank"就是在新標簽頁打開 <form action="./get.php" method="get" target="_blank"> 用戶名:<input type="text" name="userName"><br /> 密碼:<input type="password" name="userPass"><br /> <input type="submit" name="userSubmit" value="登錄"> </form> </html>

GET數(shù)組來接收表單提交的時候,它會把我們標簽的name屬性值作為get數(shù)組的鍵名,標簽的value會作為get數(shù)組的鍵值

isset函數(shù)

<?php var_dump(isset($_GET));//isset是判斷變量是否被定義isset,并且非 null var_dump(isset($_GET['name']));?>

$_POST(★)

當 HTTP POST 請求的 Content-Type 是 application/x-www-form-urlencoded 或 multipart/form-data(文件) 時,會將變量以關(guān)聯(lián)數(shù)組形式傳入當前腳本。

GET數(shù)據(jù)在URL里面,POST數(shù)據(jù)正在HTTP請求報文的請求正文中

接收用post方式傳過來的參數(shù)

<?php var_dump($_POST); ?>

login.php代碼

enctype不寫默認就是application/x-www-form-urlencoded
寫multipart/form-data是文件

<html> <meta charset="utf-8"> <h1>用戶登錄</h1> <form action="./post.php" method="post" target="_blank" enctype=""> 用戶名:<input type="text" name="userName"><br /> 密碼:<input type="password" name="userPass"><br /> <input type="submit" name="userSubmit" value="登錄"> </form> </html>

post.php代碼

<pre> <meta charset="utf-8"> <?php //var_dump($_POST); if(isset($_POST['userSubmit'])){if(isset($_POST['userName']) && $_POST['userName']=="GGG"&& isset($_POST['userPass']) && $_POST['userPass']=="123456"){echo "Welcome,".$_POST['userName'];}else{echo "用戶名或密碼錯誤<a href='./login.html'>請通過重新登錄</a>";} }else{echo "Error!<a href='./login.html'>請通過表單登錄</a>"; } ?>

$_POST上傳文件(★)

$_FILES??? 通過HTTP POST方式上傳到當前腳本的項目的數(shù)組

關(guān)于上傳文件大小的上限,我們需要去修改php.ini配置文件(此處略過)

對php.ini配置文件做修改

使上傳文件后的緩存位置更改為C:\phpStudy\tmp\tmp

C:\phpStudy\tmp\tmp是更改php上傳文件路徑

重啟phpStudy(使配置文件生效)

upfile.php:

<html> <meta charset="utf-8"> <h1>文件上傳測試 </h1> <formaction=""method="post"enctype="multipart/form-data" ><input type="file" name="userUpFile"><input type="submit" name="userSubmit" value="上傳"> </form> </html> <hr /> <?php echo "<pre>"; if(isset($_POST['userSubmit'])){ //用戶是否點擊提交按鈕var_dump($_FILES); //$_FILES捕獲文件上傳信息$tmp_path=$_FILES['userUpFile']['tmp_name'];$path=__DIR__."\\".$_FILES['userUpFile']['name'];//__DIR__獲取當前php腳本所在目錄//echo $path;if(move_uploaded_file($tmp_path,$path)){ //把緩存文件移動到目標文件(緩存文件如果不移動會瞬間消失,要利用sleep函數(shù)才能看到)//move_uploaded_file(參數(shù)1,參數(shù)2);將上傳上來的緩存文件的目錄(參數(shù)1)保存到參數(shù)2目錄下echo "upfile success!";echo "<br />".$_FILES['userUpFile']['name'];}else{echo "upfile failed";} } ?>

?

?

總結(jié)

以上是生活随笔為你收集整理的【CyberSecurityLearning 47】PHP 数组的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。