如何在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
廣告