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)
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:
teoricamente
__FILE__
es una constante que contiene el nombre del script sin extensión
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.
entonces e el string busca el ultimo / y el ultimo punto, alli está tu informacion :P
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.
$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;
}
}
}
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..
¿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.
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.
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.
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!
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.
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
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', '');
Yo hice esto hace unos meses para dar solucion a este problema llamando a index.php?url=... aqui te dejo el codigo....
<?php
class Router {
private $ruta;
public function get_ruta($ruta) {
$this->ruta = $ruta;
switch ($this->ruta) {
case 'home':
//Incluimos el controlador...
include_once './app/controllers/Home.php';
break;
default:
//Incluimos el controlador...
include_once './app/controllers/Home.php';
break;
}
}
}
//Definimos que exista una URL valida...
if (isset($_GET['url'])) {
//Asignamos el valor a una variable...
$Get_url = explode('/', $_GET['url']);
//Definimos la url base...
$url = $Get_url[0];
//Inicilizamos el objeto de la clase Ruta...
$ruta = new Router();
$ruta->get_ruta($url);
} else {
//Redireccionamos a la pagina inicial...
header("Location: " . BASE_URL . "home/");
}
?>