欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

drupal 7 d7 drupal7 得到当前页面的 url 参数数组 AG chatgpt 有大用 有大大用

在 Drupal 7 中,要获取当前页面的 URL 参数数组,可以使用 drupal_get_query_parameters() 函数。这个函数将返回一个包含所有 URL 参数的数组。

以下是一个示例代码,展示了如何获取当前页面的 URL 参数数组:

php

// 获取当前请求的 URL 参数数组 $query_parameters = drupal_get_query_parameters(); // 输出 URL 参数数组 dpm($query_parameters); // 使用 Devel 模块的 dpm() 函数来打印数组

在这个示例中,drupal_get_query_parameters() 函数将返回当前页面 URL 中的查询参数,返回值是一个关联数组,键是参数名,值是参数对应的值。

确保在代码运行的上下文中(例如,在一个自定义模块或页面回调中),这样你才能正常访问 URL 参数。


druapl $query_parameters = drupal_get_query_parameters(); drupal_get_query_parameters的反函数

在Drupal 7中,drupal_get_query_parameters() 用于从当前请求中获取查询参数数组(相当于 $_GET 的解析版本)。它的“反函数”需要实现将查询参数数组转换回URL查询字符串的功能。

对应的反函数:drupal_get_query_parameters 的反函数是  drupal_get_query_parameters  OK 有大用

Drupal提供了 drupal_http_build_query() 函数,可以将数组转换为URL编码的查询字符串,这与PHP原生的 http_build_query() 类似,但经过Drupal的封装处理。

示例代码:

php
// 获取当前查询参数 $query_parameters = drupal_get_query_parameters(); // 修改或添加参数 $query_parameters['page'] = 2; // 将参数数组转换回查询字符串 $query_string = drupal_http_build_query($query_parameters); // 生成完整URL(假设当前路径为 'node') $url = url('node', array('query' => $query_parameters)); // 或直接使用查询字符串 $url = 'node?' . $query_string;

关键点:

  1. drupal_http_build_query()
    是 drupal_get_query_parameters() 的逻辑反操作,用于构建查询字符串。

  2. 生成完整URL时更推荐的方式
    使用Drupal的 url() 或 l() 函数,直接传递参数数组:

    php
    $url = url('path', array('query' => $query_parameters));
  3. 与原生PHP函数的区别

  • drupal_http_build_query() 会处理空值和多值参数更符合Drupal约定。

  • 直接使用 http_build_query() 也是可行的,但可能缺少Drupal特有的处理。

完整流程演示:

php
// 获取当前参数 $params = drupal_get_query_parameters(); // 反操作:转换回字符串 $query_string = drupal_http_build_query($params); // 典型用法:生成带查询参数的链接 $link = l(t('Click'), 'node', array('query' => array('page' => 2)));

这种方法是Drupal中处理查询参数的标准方式,确保与Drupal的路由系统和URL生成机制兼容。



普通分类: