如何在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+ 浏览量

启动您的职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.