我们在使用drupal7中经常使用url中的destination参数做重定性处理,drupal7中也有专门换取url上destination参数的函数,介绍如下:
drupal_get_destination();//这个函数可以获取url中的destination参数,当没有destination参数,函数会将当前url作为参数返回。
drupal_http_build_query(array $query,$parent = '');
drupal_get_query_parameters(array $query = NULL,array $exclude = array('q'),$parent = '');//默认去掉$_GET['q']部分
下面是API中代码:
function drupal_get_destination(){ $destination = & drupal_static(__FUNCTION__); if( isset( $destination ) ){ return $destination; } if( isset( $_GET['destionation'] ) ){ $destionation = array( 'destionation' => $_GET['destination'], ); }else{ $path = $_GET['q']; $query = drupal_http_build_query( drupal_get_query_parameters() ); if( $query != '' ){ $path .= '?'.$query; } $destination = array( 'destination' => $path, ); } return $destination; }
function drupal_http_build_query( array $query,$parent = '' ){ $params = array(); foreach( $query as $key => $value ){ $key = $parent ? $parent . rawurlencode('['.$key.']') : rawurlencode($key); if( is_array( $value ) ){ $params[] = drupal_http_build_query( $value,$key ); }else if( !isset( $value ) ){ $params[] = $key; }else{ $param[] = $key . '=' . str_replace('%2F','/',rawurlencode($value)); } } return implode( '&',$params ); }
function drupal_get_query_parameters( array $query=NULL,array $exclude = array('q'),$parent = '' ){ //set default, if not given if( !isset( $query ) ){ $query = $_GET; } // if exclude is empty, there is nothing to filter if( empty( $exclude ) ){ return $query; } elseif( !$parent ){ $exclude = array_flip( $exclude ); } $params = array(); foreach( $query as $key => $value ){ $string_key = $parent ? $parent . '[' .$key .']' : $key; if( isset( $exclude[$string_key] ) ){ continue; } if( is_array( $value ) ){ $params[$key] = drupal_get_query_parameters( $value,$exclude,$string_key ); }else{ $params[$key] = $value; } } return $params; }
以上内容仅供参考,详细内容请参考drupal7官方网站api内容
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。