Como obtenho o URL completo da página atual?

32

Preciso obter o URL completo da página aberta no momento. Eu uso o código a seguir, mas ele retorna http://localhost/mysite/page_name.

$path = isset($_GET['q']) ? $_GET['q'] : '<front>';
$link = url($path, array('absolute' => TRUE));

Não é suficiente para o meu código ser concluído; Eu quero obter os valores que são passados ​​com o URL como http://localhost/mysite/page_name/value1=value&value2=value.

Como eu posso fazer isso?

abd
fonte

Respostas:

32

Você já tentou usar request_uri () ?

$_SERVER['HTTP_HOST'] . request_uri();

Deveria fazer o truque. Eu mesmo não experimentei, e posso ficar um pouco desconfortável, mas sugiro que tente. No JavaScript, você pode usar a window.location.hrefvariável

optimusprime619
fonte
grande truque, usei $ _SERVER ['REQUEST_URI'] para obter o URL, mas quando imprimo o URL: sitename / pagename? field_empf_salaryfrom_tid = Todos os & field_emp_date_value [value] [year] = & field_emp_date_value [value] [month] = Como remover o sitename / pagename
abd
2
@abd Você provavelmente está procurando$_SERVER['QUERY_STRING']
Clive
Posso colocar todo valor do URL em uma variável? Como o valor de (field_empf_salaryfrom_tid = All) em $ s
abd
Sugiro adicionar protocolo à resposta com #isset($_SERVER["HTTPS"]) ? 'https' : 'http';
augusto
request_uri()até funciona em 404 páginas, isso é realmente uma coisa boa.
leymannx 19/06
24

Veja como obter o URL absoluto da página atual, usando a API Drupal:

$current_url = url(current_path(), array('absolute' => TRUE));

Se você precisar dos parâmetros extras da string de consulta (não-q), poderá usar:

$current_url = url(current_path(), array('absolute' => TRUE, 
                                         'query' => drupal_get_query_parameters()));
David Thomas
fonte
7

Você pode usar o seguinte código.

global $base_root;
$current_url = $base_root . request_uri();
echo $current_url;
kumar
fonte
3

Experimente a variável $ base_url , fornece o URL de instalação do Drupal sem "/" e current_path () , retorna o caminho da página atual que está sendo visualizada.

global $base_url;
$current_path = $base_url . '/' . current_path();
Yogesh
fonte
0

Eu acho que a melhor maneira de fazer isso é usando a API url () como esta

url('your/drupal/path', array('absolute' => TRUE));
Roberto Peruzzo
fonte
A pergunta está pedindo uma página genérica, e não pela qual o caminho é conhecido.
kiamlaluno
Ok, você pode substituir your/drupal/path¡por current_path(), como @ david-thomas escreveu antes.
Roberto Peruzzo