当前位置: 首页 > 面试题库 >

通过添加GET参数来处理url字符串

闻人景澄
2023-03-14
问题内容

我想将GET参数添加到可能不包含GET参数的URL中,而无需重复?&

例:

如果我要添加 category=action

$url="http://www.acme.com";
 // will add ?category=action at the end

$url="http://www.acme.com/movies?sort=popular";
 // will add &category=action at the end

如果您发现发现的问题,我会尽量不重复问号。

URL只是一个字符串。

附加特定GET参数的可靠方法是什么?


问题答案:

基本方法

$query = parse_url($url, PHP_URL_QUERY);

// Returns a string if the URL has parameters or NULL if not
if ($query) {
    $url .= '&category=1';
} else {
    $url .= '?category=1';
}

更先进

$url = 'http://example.com/search?keyword=test&category=1&tags[]=fun&tags[]=great';

$url_parts = parse_url($url);
// If URL doesn't have a query string.
if (isset($url_parts['query'])) { // Avoid 'Undefined index: query'
    parse_str($url_parts['query'], $params);
} else {
    $params = array();
}

$params['category'] = 2;     // Overwrite if exists
$params['tags'][] = 'cool';  // Allows multiple values

// Note that this will url_encode all values
$url_parts['query'] = http_build_query($params);

// If you have pecl_http
echo http_build_url($url_parts);

// If not
echo $url_parts['scheme'] . '://' . $url_parts['host'] . $url_parts['path'] . '?' . $url_parts['query'];

如果不是类,则应至少将其放在函数中。



 类似资料:
  • 问题内容: 在基于nodejs / express的应用程序中,我需要处理GET请求,其中可能包含使用iso-8859-1字符集编码的变音符号。 不幸的是,它的querystring解析器似乎只能处理纯ASCII和UTF8: 是否有隐藏的选项或其他干净的方法也可以与其他字符集一起使用?默认行为的主要问题是,我没有办法知道是否存在解码错误-毕竟,输入 本来可以 只是简单地解码为仍然看起来像urlen

  • 本文向大家介绍javascritp添加url参数将参数加入到url中,包括了javascritp添加url参数将参数加入到url中的使用技巧和注意事项,需要的朋友参考一下 将对象参数加入到url中,如果原来url中有则覆盖 js代码

  • 问题内容: 我正在使用Commons HttpClient对Spring servlet进行http调用。我需要在查询字符串中添加一些参数。因此,我执行以下操作: 但是,当我尝试使用读取servlet中的参数时 它返回null。实际上parameterMap是完全空的。当我在创建HttpGet请求之前将参数手动添加到url时,该参数在servlet中可用。当我使用附加了queryString的UR

  • 我有一个CSV文件,如下所示: 我想得到每列的平均值,最小值,最大值,并将这些统计数据作为新行。我排除非数字列(构建列),然后运行统计信息。我通过这样做来实现这一点: 如果我当时将此数据写入CSV,它将如下所示: 这接近我想要的,但我希望构建列再次成为第一列,并在最小,平均,最大值的顶部存在构建名称。基本上是这样的: 我试图通过以下方式实现这一目标: 但这给了我一个CSV: 我怎样才能解决这个问题

  • 问题内容: 我有一个使用邮递员传递URL参数的工作方案。现在,当我尝试通过Swift中的Alamofire进行操作时,它不起作用。 您如何在Alamofire中创建此网址? http:// localhost:8080 /?test = 123 问题答案: 问题是您正在使用。Alamofire会根据您所使用的HTTP进行不同的解释。 对于,和请求,将参数编码为查询字符串并将其添加到URL,但是对于