php如何傳數組

王林
發布: 2023-05-19 20:29:06
原創
1152 人瀏覽過

在 PHP 中,可以使用多種方法來傳遞陣列。本文將介紹 PHP 中常用的三種傳數組的方法:GET、POST 和 SESSION。

  1. GET 方法傳遞數組

GET 方法是傳遞資料最簡單的方法之一。它將資料透過 URL 參數傳遞給伺服器,由伺服器在網頁中取得資料。在傳遞數組時,需要將數組轉換為字串,並將其作為參數傳遞。

如下是將陣列轉換為 GET 參數的方法:

$array = array("name" => "小明", "age" => 18, "gender" => "男");
$query_str = http_build_query($array);
登入後複製

使用 http_build_query() 函數將陣列轉換為查詢字串。呼叫函數後,$query_str 變數將包含以下字串:

name=%E5%B0%8F%E6%98%8E&age=18&gender=%E7%94%B7
登入後複製

可以將這個字串追加到URL 後,以GET 方法傳遞陣列資料:

$url = "result.php?" . $query_str;
header("Location: $url");
登入後複製

在伺服器端,可以使用$_GET 陣列取得傳遞的參數,將查詢字串解碼為陣列:

if(isset($_GET["name"]) && isset($_GET["age"]) && isset($_GET["gender"])) {
    $name = $_GET["name"];
    $age = $_GET["age"];
    $gender = $_GET["gender"];
    $array = array("name" => urldecode($name), "age" => $age, "gender" => urldecode($gender));
}
登入後複製

使用urldecode() 函數解碼透過GET 方法傳遞的字串。

  1. POST 方法傳遞數組

POST 方法傳遞數組相對於GET 方法更為安全,因為資料不會在URL 中傳遞,而是將資料作為請求的正文傳遞給伺服器。在傳遞陣列時,需要將陣列轉換為 JSON 格式,並使用 json_encode() 函數將其編碼為字串。

如下是使用POST 方法傳遞陣列的方法:

$array = array("name" => "小明", "age" => 18, "gender" => "男");

$post_data = array("data" => json_encode($array));
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://example.com/result.php");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
登入後複製

在伺服器端,可以使用file_get_contents() 函數讀取POST 請求傳遞的資料:

if(isset($_POST["data"])) {
    $json_str = $_POST["data"];
    $array = json_decode($json_str, true);
}
登入後複製

使用json_decode() 函數將字串解碼為陣列。

  1. SESSION 方法傳遞數組

SESSION 方法是一種在伺服器端儲存變數的方法。使用 SESSION 方法傳遞數組需要先將數組儲存到 SESSION 中,然後在下一次請求中取得儲存的變數。

如下是使用SESSION 方法傳遞陣列的方法:

$array = array("name" => "小明", "age" => 18, "gender" => "男");

session_start();
$_SESSION["my_array"] = $array;
登入後複製

在下次要求中,可以使用下列程式碼取得儲存在SESSION 中的陣列:

session_start();
$array = $_SESSION["my_array"];
登入後複製

可以使用SESSION方法傳遞任意類型的數據,因為SESSION 變數可以儲存整個數組物件。

本文介紹了 PHP 中傳遞陣列的幾種常見方法。在實際應用中,可以根據具體需求選擇適當的方法傳遞資料。

以上是php如何傳數組的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!