256 votes

Récupérer le nom du fichier script actuel.

Si j'ai PHP script, comment puis-je obtenir le nom du fichier à l'intérieur de ce script ?

De même, étant donné le nom d'un script de la forme jquery.js.php comment puis-je extraire seulement la partie "jquery.js" ?

396voto

alex Points 186293

Il suffit d'utiliser le Constante magique de PHP ...

echo __FILE__;

pour obtenir le nom du fichier courant.

Mais il semble que vous vouliez la partie sans .php . Alors...

echo preg_replace('/\.php$/', '', __FILE__);

Un suppresseur d'extension de fichier plus générique ressemblerait à ceci...

function chopExtension($filename) {
    $ext = pathinfo($filename, PATHINFO_EXTENSION);
    return preg_replace('/\.' . preg_quote($ext, '/') . '$/', '', $filename);
}

var_dump(chopExtension('bob.php')); // string(3) "bob"
var_dump(chopExtension('bob.i.have.dots.zip')); // string(15) "bob.i.have.dots"

Regardez-le !

Mise à jour

L'utilisation des fonctions standard de la bibliothèque des chaînes de caractères est beaucoup plus rapide comme on peut s'y attendre.

function chopExtension($filename) {
    return substr($filename, 0, strrpos($filename, '.'));
}

Mise à jour

Sebastian Krebs a fait remarquer que vous pouvez obtenir le nom du fichier sans l'élément .php une extension comme ça .

basename(__FILE__, '.php');

117voto

SparK Points 989

Juste une idée : lorsque vous voulez que votre include sache dans quel fichier il se trouve, utilisez :

basename($_SERVER["SCRIPT_FILENAME"], '.php')

car lorsque vous écrivez dans un fichier, vous connaissez généralement son nom.

68voto

max4ever Points 2420

Voir http://php.net/manual/en/function.pathinfo.php

pathinfo(__FILE__, PATHINFO_FILENAME);

56voto

Khandad Niazi Points 193

Voici la différence entre basename(__FILE__, ".php") y basename($_SERVER['REQUEST_URI'], ".php") .

basename(__FILE__, ".php") indique le nom du fichier dans lequel ce code est inclus - Cela signifie que si vous incluez ce code dans le fichier header.php et la page actuelle est index.php il retournera en-tête no indice .

basename($_SERVER["REQUEST_URI"], ".php") - Si vous utilisez l'inclusion de ce code dans header.php et la page actuelle est index.php il retournera indice no en-tête .

26voto

charan315 Points 81

Cela pourrait aider :

basename($_SERVER['PHP_SELF'])

cela fonctionnera même si vous utilisez include.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X