[Resuelto] [Pregunta]: ¿Como puedo realizar esto?

Iniciado por Leguim, 12 Septiembre 2019, 02:59 AM

0 Miembros y 1 Visitante están viendo este tema.

Leguim

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 (javascript) [Seleccionar]

var page = location.pathname;
page_name = page_name.replace(/^.*[\\\/]/, '');
page_name = page_name.replace('.', '');
page_name = page_name.replace('.html', '');
page_name = page_name.replace('.php', '');


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:

engel lex

teoricamente
__FILE__
es una constante que contiene el nombre del script sin extensión
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

Cita de: engel lex en 12 Septiembre 2019, 03:30 AM
teoricamente
__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.

engel lex

entonces e el string busca el ultimo / y el ultimo punto, alli está tu informacion :P
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

#4
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 (php) [Seleccionar]
$CodigoFuente = strtolower($CodigoFuente);
for ($i = 0; $i < $CodigoFuenteTamaño; ++$i)
   {
       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] == '>' )
       {
           while ($CodigoFuente[7+$i] != '<'  && $CodigoFuente[8+$i] != '/')
           {
            $TituloPagina=$TituloPagina.$CodigoFuente[7+$i];
           ++$i;
            }
       }
  }

Leguim

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..

MinusFour

¿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 (php) [Seleccionar]

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.

Leguim

Cita de: MinusFour 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 (php) [Seleccionar]

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!

@XSStringManolo

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.

Leguim

Cita de: string Manolo 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.

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

javascript
Código (javascript) [Seleccionar]

var page = location.pathname;
page_name = page_name.replace(/^.*[\\\/]/, '');
page_name = page_name.replace('.', '');
page_name = page_name.replace('.html', '');
page_name = page_name.replace('.php', '');