elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  [Resuelto] [Pregunta]: ¿Como puedo realizar esto?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: [Resuelto] [Pregunta]: ¿Como puedo realizar esto?  (Leído 5,713 veces)
Leguim


Desconectado Desconectado

Mensajes: 720



Ver Perfil
[Resuelto] [Pregunta]: ¿Como puedo realizar esto?
« en: 12 Septiembre 2019, 02:59 am »

Buenas noches.

Me gustaría saber como puedo obtener el nombre del archivo php que se esta ejecutado, es decir si yo estoy en index.php quisiera que me muestre en pantalla "index", puedo hacerlo usando esto de php "$_SERVER['PHP_SELF']" pero muestra toda una ruta, cuando yo solamente necesito obtener el nombre del archivo y además de que no tenga el .php o .html. Esto lo pude hacer con javascript. (Lo vi en algun post)

Código
  1. var page = location.pathname;
  2. page_name = page_name.replace(/^.*[\\\/]/, '');
  3. page_name = page_name.replace('.', '');
  4. page_name = page_name.replace('.html', '');
  5. page_name = page_name.replace('.php', '');
  6.  

Pero me gustaría hacer algo igual pero con PHP, busque en el navegador pero no me sirven me dan errores (seguramente porque son temas desde el 2003 a el 2011 que pude ver)



Mod: Temas sobre PHP van al subforo de PHP:


« Última modificación: 24 Septiembre 2019, 12:15 pm por #!drvy » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: [Pregunta]: ¿Como puedo realizar esto?
« Respuesta #1 en: 12 Septiembre 2019, 03:30 am »

teoricamente
Código:
__FILE__
es una constante que contiene el nombre del script sin extensión


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Leguim


Desconectado Desconectado

Mensajes: 720



Ver Perfil
Re: [Pregunta]: ¿Como puedo realizar esto?
« Respuesta #2 en: 12 Septiembre 2019, 04:00 am »

teoricamente
Código:
__FILE__
es una constante que contiene el nombre del script sin extensión

C:\xampp\htdocs\aplication\ajax\test2.php

Me devolvió una ruta muy extensa.
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: [Pregunta]: ¿Como puedo realizar esto?
« Respuesta #3 en: 12 Septiembre 2019, 04:10 am »

entonces e el string busca el ultimo / y el ultimo punto, alli está tu informacion :P
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
@XSStringManolo
Hacker/Programador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.397


Turn off the red ligth


Ver Perfil WWW
Re: [Pregunta]: ¿Como puedo realizar esto?
« Respuesta #4 en: 12 Septiembre 2019, 04:21 am »

Si el nombre de la página se lo das con la etiqueta <title> yo lo haría así:
Yo usaría un for. Es poco ortodoxo pero funciona.
Código
  1. $CodigoFuente = strtolower($CodigoFuente);
  2. for ($i = 0; $i < $CodigoFuenteTamaño; ++$i)
  3.    {
  4.        if ($CodigoFuente[$i] == '<' && $CodigoFuente[1+$i] == 't' && $CodigoFuente[2+$i] == 'i' && $CodigoFuente[3+$i] == 't' && $CodigoFuente[4+$i] == 'l' && $CodigoFuente[5+$i] == 'e' && $CodigoFuente[6+$i] == '>' )
  5.        {
  6.            while ($CodigoFuente[7+$i] != '<'  && $CodigoFuente[8+$i] != '/')
  7.            {
  8.             $TituloPagina=$TituloPagina.$CodigoFuente[7+$i];
  9.            ++$i;
  10.             }
  11.        }
  12.   }
« Última modificación: 12 Septiembre 2019, 04:23 am por string Manolo » En línea

Mi perfil de patrocinadores de GitHub está activo! Puedes patrocinarme para apoyar mi trabajo de código abierto 💖

Leguim


Desconectado Desconectado

Mensajes: 720



Ver Perfil
Re: [Pregunta]: ¿Como puedo realizar esto?
« Respuesta #5 en: 12 Septiembre 2019, 04:36 am »

Claro el tema es por eso digamos lo que nose bien es digamos tengo la url esa nose... xampp/htdocs/aplication/ajax/test.php

Con una función PHP que no se como poder usarlas el xampp/ se vaya, el htdocs/ se vaya, el /aplication y el /ajax/ se vayan quedando así test.php y sacar el .php y quede test por supuesto se debe de usar preg_match o str_replace intente hacerlo así pero me daba errores o directamente no me aparecía nada...

Me imagino que debe de ser una función similar a las que se usa en el código de javascript que pase  :huh: pero no entiendo hacer eso con php..
En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: [Pregunta]: ¿Como puedo realizar esto?
« Respuesta #6 en: 12 Septiembre 2019, 04:37 am »

¿Como estás pensando trabajar esto? Porque como yo lo veo, si estás editando el archivo index.php tu sabes que el archivo se llama index.

Código
  1. basename($_SERVER['SCRIPT_FILENAME'], '.php');

$_SERVER['SCRIPT_FILENAME'] te regresa la ruta al archivo inicial mientras que __FILE__ te regresa la ruta del archivo donde este.
En línea

Leguim


Desconectado Desconectado

Mensajes: 720



Ver Perfil
Re: [Pregunta]: ¿Como puedo realizar esto?
« Respuesta #7 en: 12 Septiembre 2019, 04:41 am »

¿Como estás pensando trabajar esto? Porque como yo lo veo, si estás editando el archivo index.php tu sabes que el archivo se llama index.

Código
  1. basename($_SERVER['SCRIPT_FILENAME'], '.php');

$_SERVER['SCRIPT_FILENAME'] te regresa la ruta al archivo inicial mientras que __FILE__ te regresa la ruta del archivo donde este.

Ese código me sirvió, gracias a los 3!
En línea

@XSStringManolo
Hacker/Programador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.397


Turn off the red ligth


Ver Perfil WWW
Re: [Pregunta]: ¿Como puedo realizar esto?
« Respuesta #8 en: 12 Septiembre 2019, 04:53 am »

Si te interesa por algún motivo hacerlo con javascript puedes hacer:
var Titulo = document.title;
O puedes cambiar el título con:
document.title = "Nuevo Titulo";

Aquí más cosas relacionadas que puedes obtener:
 https://www.w3schools.com/js/js_window_location.asp

Por cierto lo que te comenta Engel puede fallar por varios motivos.
 https://benohead.com/getting-a-file-extension-with-javascript/

Pillas la extensión como en este Tuto si la hay. Si hay extensión eliminas la cadena obtenida del nombre del archivo al completo. También le quitas la ruta de la misma forma que en el tuto y ya te queda solo el nombre del archivo.
En línea

Mi perfil de patrocinadores de GitHub está activo! Puedes patrocinarme para apoyar mi trabajo de código abierto 💖

Leguim


Desconectado Desconectado

Mensajes: 720



Ver Perfil
Re: [Pregunta]: ¿Como puedo realizar esto?
« Respuesta #9 en: 12 Septiembre 2019, 05:10 am »

Si te interesa por algún motivo hacerlo con javascript puedes hacer:
var Titulo = document.title;
O puedes cambiar el título con:
document.title = "Nuevo Titulo";

Aquí más cosas relacionadas que puedes obtener:
 https://www.w3schools.com/js/js_window_location.asp

Por cierto lo que te comenta Engel puede fallar por varios motivos.
 https://benohead.com/getting-a-file-extension-with-javascript/

Pillas la extensión como en este Tuto si la hay. Si hay extensión eliminas la cadena obtenida del nombre del archivo al completo. También le quitas la ruta de la misma forma que en el tuto y ya te queda solo el nombre del archivo.

¡Gracias! Si igual con javascript ya lo había hecho, pero necesitaba hacerlo con PHP

javascript
Código
  1. var page = location.pathname;
  2. page_name = page_name.replace(/^.*[\\\/]/, '');
  3. page_name = page_name.replace('.', '');
  4. page_name = page_name.replace('.html', '');
  5. page_name = page_name.replace('.php', '');
  6.  
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines