pedrotuga Posted April 28, 2006 at 03:15 AM Report #24750 Posted April 28, 2006 at 03:15 AM qual é que voces usam? n estou a ver qual é a cena do $_SERVER['PHP_SELF']; devolver a path desde a raíz... assim basicamente nada pratico... o __FILE__ desenrasca sempre em qq situaçao certo?
deathseeker25 Posted April 29, 2006 at 06:39 PM Report #24846 Posted April 29, 2006 at 06:39 PM Eu uso sempre o $SERVER['PHP_SELF']; por uma questão de opção. Na realidade, nunca tinha utilizado o __FILE__ até porque no livro que tenho nada falou sobre o mesmo. Procurei pela distinção das variaveis e encontrei isto: 'PHP_SELF' O nome do arquivo do script atualmente em uso, relativo ao document root. Por exemplo, $_SERVER['PHP_SELF'] em um script com o endereço http://example.com/test.php/foo.bar pode ser /test.php/foo.bar. A constante __FILE__ contém o caminho completo e nome do arquivo (mesmo incluído) atual. Se estiver rodando o PHP em linha de comando, esta variável não está disponível. __FILE__ O caminho completo e nome do arquivo. Se utilizado dentro de um include, o nome do arquivo incluído será retornado. http://pt.php.net/manual/pt_BR/reserved.variables.php#reserved.variables.server http://pt.php.net/manual/pt_BR/language.constants.predefined.php
QuickFire Posted April 29, 2006 at 07:07 PM Report #24857 Posted April 29, 2006 at 07:07 PM Eu sempre usei o $_SERVER["PHP_SELF"]; desde o php3 acho 😛 O __FILE__ nunca tinha ouvido falar sequer 😛
pedrotuga Posted April 29, 2006 at 10:14 PM Author Report #24894 Posted April 29, 2006 at 10:14 PM loooll ya... era o que eu pensava... eu tinha lido essas paginas do manual e pus-me a mim próprio essa questao? por que raio é to só vejo o $_SERVER["PHP_SELF"] se o __FILE__ é muito mais prático... aparentemente estou a ver queé por causa de ter aparecido em alguma literatura muito popular. Eu já usei um livro de php mas já me dexei disso... na internet arranja-semelhor documentação... nomeadamente o manual 😛 que esta sempre actualizado.
TheDark Posted May 2, 2006 at 11:51 AM Report #25218 Posted May 2, 2006 at 11:51 AM O post do deathseeker25 está correcto, mas pelas respostas parece que está pouco explícito. Se tiveres um script php em que fazes include ou require de outro ficheiro, tipo isto: (ficheiro: index.php) ... <?php require 'teste.php'; ?> ... e nesse outro ficheiro usares o __FILE__ (ficheiro: teste.php) <?php echo __FILE__."<br>"; echo $_SERVER["PHP_SELF"]; ?> vais ver que o __FILE__ retorna /home/user/public_html/caminho/para/teste.php (num sistema *nix) e o $_SERVER["PHP_SELF"] retorna /caminho/para/index.php (com o caminho desde a directoria-base do servidor). A diferença é que o __FILE__ dá o nome do ficheiro que está a ser processado, e o $_SERVER["PHP_SELF"] dá o nome do ficheiro que foi pedido pelo browser. A razão para existirem os dois (e existe sempre uma razão) é que, quando alteramos ficheiros, dá jeito ter o path completo da máquina; quando estamos a lidar com endereços web, dá mais jeito ter o path a partir da directoria-base do servidor. Desaparecido.
pedrotuga Posted May 3, 2006 at 10:45 AM Author Report #25401 Posted May 3, 2006 at 10:45 AM moral da história: falta um terceiro que dê a path completa para o script em execução em vez do script incluido. epa... é um pouco fatela... estilo: o $_SERVER["PHP_SELF"]... se eu escrever: string $destino=$_SERVER["PHP_SELF"]."?var1=2"; header($destino); esta porra redireciona-me para o próprio ficheiro independentemente da directoria onde este esteja?
TheDark Posted May 5, 2006 at 01:17 AM Report #25720 Posted May 5, 2006 at 01:17 AM Sim, se tiveres isso quer dentro de um ficheiro que foi required por um index.php, quer dentro do proprio index.php, isso redirecciona-te para o index.php. Desaparecido.
entering Posted May 5, 2006 at 08:20 AM Report #25729 Posted May 5, 2006 at 08:20 AM PHP foi buscar várias 'features' a outras linguagens de programação ex: c e perl perl comentário # c comentários // ou /* */ (entre outros) isso do __FILE__ existe em C é normal que PHP também exista
pedrotuga Posted May 5, 2006 at 02:15 PM Author Report #25783 Posted May 5, 2006 at 02:15 PM yaps... eu já sou um mano que desabrochou para programação web já na era do php... mas pelo que parece, o parente mais velho é mesmo o perl... pelo que vejo, os programadores de php que já andam nesta vida há mais tempo vieram todos do perl... de resto já estive a ler umas cenas sobre perl e não parece muito diferente... mas agora estamos na era do php.. o perl teve o seu tempo... anyway... acerca do $_SERVER["PHP_SELF"] a minha pergunta era... se eu estou por exemplo na pasta /pagina se eu usar o $_SERVER["PHP_SELF"] não me irá isso apontar para /pagina/pagina/nomedoficheiro.php causando assim um erro? é que esta porra diz que dá sempre o caminho completo... anyway... acerca do
TheDark Posted May 5, 2006 at 06:06 PM Report #25860 Posted May 5, 2006 at 06:06 PM ele vai retornar "/pagina/nomedoficheiro.php"; como tem a / no inicio, o browser interpreta isso como o caminho completo, não lhe adicionando a directoria actual. Desaparecido.
pedrotuga Posted May 6, 2006 at 05:06 PM Author Report #26073 Posted May 6, 2006 at 05:06 PM tal como eu pensava... podia-me ter dado ao trabalho de experimentar... ehehe lol obrigado dark
andremedeiros Posted May 25, 2006 at 04:06 PM Report #29481 Posted May 25, 2006 at 04:06 PM Depende muito daquilo que queres. __FILE__ dá-te o caminho completo para o ficheiro que está a chamar a constante. Se tiveres um __FILE__ dentro de um header.php incluido pelo index.php, o __FILE__ devolve-te o caminho do header.php É bom para quando vais ler ficheiros de config, por ex, e não sabes a path completa.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now