Avatar ·

Como obter a URL completa da página atual em PHP?

Olá a todos! Sou um desenvolvedor PHP iniciante e estou com um problema. Preciso obter a URL completa da página atual, incluindo o protocolo (http ou https), domínio, caminho e todos os parâmetros GET. Tentei várias maneiras, mas sempre algo dá errado. Tentei usar `$_SERVER['REQUEST_URI']` — ele retorna apenas o caminho, por exemplo `/page.php?id=5`, sem o domínio e o protocolo. E `$_SERVER['HTTP_HOST']` fornece apenas o domínio, por exemplo `example.com`. Se eu simplesmente concatená-los com `echo "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];`, ao trabalhar com HTTPS, o protocolo fica incorreto — permanece `http://`. Além disso, notei que `$_SERVER['HTTPS']` às vezes não está definido, especialmente em servidores locais. E se a página for aberta com `www` ou sem `www` — isso também afeta. Além disso, alguns hostings usam portas, por exemplo `localhost:8080`, e elas precisam ser consideradas. Resumindo, estou confuso. Digam-me como montar corretamente e de forma confiável a URL completa em PHP, para que funcione em qualquer situação.