php数组和网址URL参数的互相转换

前言

接口调试和开发的过程中,相信很多小伙伴都会经常用到数组和url参数的相互转换来模拟请求。其实不用自己再通过foreach或implode之类的手动实现,php自身的函数库给我们提供了两个方法,完全够用:

一、http_build_query

将数据转换为URL参数格式,返回一个 URL 编码后的字符串。

示例:

$arr = [
	'name' 		=> 'ngxcode',
	'url'		=> 'https://www.ngxcode.com',
	'flowid'	=> '1001035',
	'desc'		=> 'php share'
];

echo http_build_query($arr) . "\n";
echo http_build_query($arr, '', '&');

输出:

name=ngxcode&url=https%3A%2F%2Fwww.ngxcode.com&flowid=1001035&desc=php+share
name=ngxcode&url=https%3A%2F%2Fwww.ngxcode.com&flowid=1001035&desc=php+share

二、parse_str

URL参数字符串转为数组,将字符串解析成多个变量

示例:

$url_params = 'name=ngxcode&url=https%3A%2F%2Fwww.ngxcode.com&flowid=1001035&desc=php+share';
//如果设置了第二个变量 result,变量将会以数组元素的形式存入到这个数组,作为替代。
parse_str($url_params, $result);

print_r($result);

输出

Array
(
   [name] => ngxcode
   [url] => https://www.ngxcode.com
   [flowid] => 1001035
   [desc] => php share
)

PHP官方文档

以下为两个函数的官方文档介绍,需要更复杂转换和解析需求的,可查看文档使用
https://www.php.net/manual/zh/function.http-build-query.php
https://www.php.net/manual/zh/function.parse-str.php

原文地址:https://www.ngxcode.com/archives/519.html

posted @ 2023-05-10 16:23  wangnbx  阅读(758)  评论(0编辑  收藏  举报