如何在Laravel中傳遞陣列作為URL引數?


要將陣列作為URL引數傳遞,您可以使用PHP內建函式http_build_query()http_build_query()函式返回一個URL編碼的查詢字串。

示例1

使用http_build_query()

以下是此方法的示例:

$data = array( 'field1' => 'test', 'field2' => 'xyz' ); echo http_build_query($data) . "
"
;

輸出

以上程式碼的輸出為:

field1=test&field2=xyz

以下示例演示了當您有一個數組需要作為URL引數傳遞時,如何使用http_build_query()。

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\User; use Illuminate\Http\Response; class UserController extends Controller{ public function index(Request $request) { $yoururl = "https://www.test.com"; $params = array( "t1" => "abc", "t2" => "xyz" ); echo $yourfinalurl = $yoururl."?".http_build_query($params); } }

以上程式碼的輸出為:

https://www.test.com?t1=abc&t2=xyz

示例2

您可以使用serialize()和urlencode PHP內建函式將陣列作為URL引數傳遞。

serialize()函式將返回給定輸入的位序列,而urlencode將再次對值以及其中可用的特殊字元進行編碼。

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\User; use Illuminate\Http\Response; class UserController extends Controller{ public function index(Request $request) { $yoururl = "https://www.test.com"; $params = array( "t1" => "abc", "t2" => "xyz" ); $firstserialize = serialize($params); echo $yourfinalurl = $yoururl."?".urlencode($firstserialize); } }

輸出

以上程式碼的輸出為:

https://www.test.com?a%3A2%3A%7Bs%3A2%3A%22t1%22%3Bs%3A3%3A%22abc%22%3Bs%3A2%3A%22t2%22%3Bs%3A3%3A%22xyz%22%3B%7D

示例3

使用http_build_query()和urlencode()函式。

  • urlencode() - 它將值編碼為字串。

  • http_build_query() - 返回URL編碼的查詢字串。

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\User; use Illuminate\Http\Response; class UserController extends Controller{ public function index(Request $request) { $yoururl = "https://www.test.com"; $params = array( "t1" => "abc", "t2" => "xyz" ); echo $yourfinalurl = $yoururl."?".urlencode(http_build_query($params)); } }

輸出

以上程式碼的輸出為:

https://www.test.com?t1%3Dabc%26t2%3Dxyz

示例4

使用urlencode()和jsonencode()

以下是一個使用jsconencode()和urlencode()函式將陣列作為URL引數傳遞的示例:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\User; use Illuminate\Http\Response; class UserController extends Controller{ public function index(Request $request) { $yoururl = "https://www.test.com"; $params = array( "t1" => "abc", "t2" => "xyz" ); echo $yourfinalurl = $yoururl."?".urlencode(json_encode($params)); } }

輸出

以上程式碼的輸出為:

https://www.test.com?%7B%22t1%22%3A%22abc%22%2C%22t2%22%3A%22xyz%22%7D

更新於:2022年8月30日

11K+ 瀏覽量

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告