• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

gimbras

[PHP] Saber o nome do próprio ficheiro

14 mensagens neste tópico

Oi,

Há alguma forma de saber o script PHP conseguir devolver o nome do próprio ficheiro PHP?

Já me fartei de procurar e nada!

Cumps.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
echo $_SERVER['SCRIPT_NAME'];

//ou

echo $_SERVER['PHP_SELF'];

//ou

echo __FILE__;

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

fácil... pedes para pedir o url completo e depois com ereg o preg_match buscas so o nome do ficheiro

edit: ou entao da forma como o kingless disse :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Nops, não dá só o nome do próprio ficheiro. Inclui sempre o caminho desde da raiz do dominio. Ou seja, caso o ficheiro esteja dentro de um pasta o echo mostra o nome da pasta e do ficheiro.

Há alguma forma de sacar só o nome do ficheiro?

Bom e o title da page consegue-se?

Obg.

Cumps.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

@gimbras é só fazer isso...

$nome = explode( '/', $_SERVER['SCRIPT_NAME'] );
echo $nome[0];

//ou

$nome = explode( '/', $_SERVER['PHP_SELF']);
echo $nome[0];

//ou

$nome = explode( '/', __FILE__ );
echo $nome[0];

E o titulo da página não é possivel porque aquilo é HTML.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

para o titulo da pagina, tens que usar a fopen, procurar pela tag title, e tirar apenas o que la esta dentro

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O que kingless explicou funcionou, mas tive de meter a array na posição 2 (pq a pagina estava numa subpasta do dominio principal).

Karva mete lá aí um exemplo s.f.f. :P

Thanks.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para obteres o titulo podes fazer assim:

<?php
$leitura = fopen("teste.html", "r"); // Obviamente que deves alterar teste.html para a página que pretendes
                
eregi("<title>(.*)</title>", fread($leitura, 220), $titulo); //220 quer dizer que o código vai ler 220 bytes do ficheiro. Se não chegar para obteres o título, basta aumentares este valor
               
fclose($leitura);

echo $titulo[1];
?>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O que kingless explicou funcionou, mas tive de meter a array na posição 2 (pq a pagina estava numa subpasta do dominio principal).

Mas tens uma boa maneira de contornar isso sem teres que saber a posição na array.

O php tem uma função chamada strrev(); que te soluciona isso, aqui está um exemplo:

<?php

$nome = explode( '/', strrev($_SERVER['PHP_SELF']));

echo strrev($nome[0]);

?>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

$nome = explode( '/', $_SERVER['SCRIPT_NAME'] );
echo $nome[0];

Talvez isto era melhor:

$nome = explode( '/', $_SERVER['SCRIPT_NAME'] );
echo $nome[count($nome)-1];

:P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

alguem sabe como vou buscar o endereco completo do script?

do tipo:

www.karva.com.pt/script.php

com essas funcoes, so consigo encontrar o endereco no tipo d:\server\script.php...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
<?
echo "http://www". $_SERVER['HTTP_HOST']. $_SERVER['REQUEST_URI'];
?>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora