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

这里的技术是共享的

You are here

d7 drupal7 drupal 7 drupal_goto("aaaa?bbb=1") 会对问号进行转码 AG chatgpt 有大用 有大大用

在Drupal 7中,使用 drupal_goto() 函数时,它会默认对传递的路径进行转码 (URL encoding),但有时候你可能看到它执行一些意想不到的行为,尤其是当你的 URL 包含查询参数时。

drupal_goto() 函数的基本用法:

drupal_goto($path, $options = array())

  • $path: 目标路径。

  • $options: 可选的参数,可以用于控制重定向行为,比如提供状态代码、附加查询字符串等。

使用示例

以下是一个简单的例子:

php
// 执行重定向
drupal_goto('aaaa', array('query' => array('bbb' => 1)));

注意事项

  1. URL 编码drupal_goto() 会对 path 参数进行转码,确保 URL 的安全。当要传递的 URL 包含查询参数时,建议使用 options 参数来传递查询参数。

  2. 保留现有查询参数: 如果你希望保留现有的查询参数,使用 drupal_goto() 的 options 参数中进行构造。例如:

    php
    // 重定向到 'aaaa' 路径,同时保留 'bbb' 查询参数
    drupal_goto('aaaa', array('query' => $_GET));
  3. 完整重定向: 如果你想要重定向到一个完整的 URL(带有查询字符串),则可以这样做:

    php
    drupal_goto('http://example.com/aaaa?bbb=1');

小结

使用 drupal_goto() 时,如果需要传递查询参数,建议使用 array('query' => array()) 的方式来确保参数的正确处理和编码。这不仅可以提高代码的可读性,还能避免由于手动拼接 URL 而可能出现的错误。


普通分类: