PHP解析url并得到url参数方法总结

yipeiwu_com5年前PHP代码库

PHP 中解析 url 并得到 url 参数

这里介绍两种对url操作的方法:

1、拿到一个完整url后,如何解析该url得到里面的参数。

/**
 * 解析url中参数信息,返回参数数组
 */
function convertUrlQuery($query)
{
  $queryParts = explode('&', $query);
 
  $params = array();
  foreach ($queryParts as $param) {
   $item = explode('=', $param);
   $params[$item[0]] = $item[1];
  }
 
  return $params;
}

2、如何把一个数组拼接成url传递。

/**
 * 把数组拼接成url参数形式
 */
function getUrlQuery($array_query)
{
  $tmp = array();
  foreach ($array_query as $k => $param) {
   $tmp[] = $k . '=' . $param;
  }
  $params = implode('&', $tmp);
  return $params;
}

测试调用:

$url = 'http://www.test.com/link?param1=1¶m2=2¶m3=3';
// 解析url,得到参数字符串
$url = parse_url($url);
// 字符串->数组
$param_arr = $this->convertUrlQuery($url['query']);
// 数组->字符串
$param_str = $this->getUrlQuery($param_arr);

PHP 中解析 url 并得到 url 参数

这里介绍两种对url操作的方法:

1、拿到一个完整url后,如何解析该url得到里面的参数。

/**
 * 解析url中参数信息,返回参数数组
 */
function convertUrlQuery($query)
{
  $queryParts = explode('&', $query);
 
  $params = array();
  foreach ($queryParts as $param) {
   $item = explode('=', $param);
   $params[$item[0]] = $item[1];
  }
 
  return $params;
}

2、如何把一个数组拼接成url传递。

/**
 * 把数组拼接成url参数形式
 */
function getUrlQuery($array_query)
{
  $tmp = array();
  foreach ($array_query as $k => $param) {
   $tmp[] = $k . '=' . $param;
  }
  $params = implode('&', $tmp);
  return $params;
}

测试调用:

$url = 'http://www.test.com/link?param1=1¶m2=2¶m3=3';
// 解析url,得到参数字符串
$url = parse_url($url);
// 字符串->数组
$param_arr = $this->convertUrlQuery($url['query']);
// 数组->字符串
$param_str = $this->getUrlQuery($param_arr);

相关文章

php数组实现根据某个键值将相同键值合并生成新二维数组的方法

本文实例讲述了php数组实现根据某个键值将相同键值合并生成新二维数组的方法。分享给大家供大家参考,具体如下: 源数据: $infos = array( array( 'a...

解决163/sohu/sina不能够收到PHP MAIL函数发出邮件的问题

复制代码 代码如下:// multiple recipients $to = 'aidan@example.com' . ', '; // note the comma $to .= '...

php判断目录存在的简单方法

PHP判断文件或目录是否存在 file_exists:判断文件是否存在 $file = "check.txt"; if(file_exists($file)) { echo...

php实现zip文件解压操作

PHP解压zip文件函数,源码简短,需要使用 ZZIPlib library 扩展,使用前请确认该扩展已经开启。 <? /*********************...

ThinkPHP中实例Model方法的区别说明

在TP中,我们可以用下面两种方法去创建一个数据表的映射对象(我暂时用到的) 第一种:$Test = D('Test') 第二种:$Test = new Model('Test') 虽然这...