В PHP иногда может потребоваться получить имя текущего исполняемого файла. Хотите ли вы отобразить его на веб-странице, манипулировать им для дальнейшей обработки или просто использовать его для внутренней регистрации, существует несколько способов выполнения этой задачи. В этой статье мы рассмотрим десять различных способов получения текущего имени файла в PHP, а также примеры кода и практические пояснения.
Метод 1: использование суперглобальной переменной $_SERVER['PHP_SELF'].
Суперглобальная переменная $_SERVER['PHP_SELF']содержит имя выполняющегося в данный момент сценария. Чтобы извлечь только имя файла из полного пути, вы можете использовать функцию basename():
$currentFile = basename($_SERVER['PHP_SELF']);
Метод 2: использование суперглобального объекта $_SERVER['SCRIPT_FILENAME'].
Подобно $_SERVER['PHP_SELF'], суперглобальный объект $_SERVER['SCRIPT_FILENAME']содержит полный путь и имя текущего сценарий. Вы можете извлечь имя файла, используя basename():
$currentFile = basename($_SERVER['SCRIPT_FILENAME']);
Метод 3: использование магической константы __FILE__
Магическая константа __FILE__представляет собой полный путь и имя текущего файла сценария. Чтобы извлечь только имя файла, вы можете объединить его с basename():
$currentFile = basename(__FILE__);
Метод 4: использование pathinfo()
Функция pathinfo()предоставляет массив информации о пути к файлу, включая имя файла. Передав __FILE__в pathinfo(), вы можете напрямую извлечь имя файла:
$currentFile = pathinfo(__FILE__, PATHINFO_FILENAME);
Метод 5. Расчленение URL-адреса
Если вам нужно имя файла в контексте URL-адреса, вы можете использовать функции parse_url()и basename()для его извлечения:
$url = $_SERVER['REQUEST_URI'];
$path = parse_url($url, PHP_URL_PATH);
$currentFile = basename($path);
Метод 6: использование регулярных выражений
Регулярные выражения обеспечивают гибкость при извлечении имени файла. Вот пример, соответствующий последней части URL-пути:
$url = $_SERVER['REQUEST_URI'];
preg_match('/\/([^\/]*)$/', $url, $matches);
$currentFile = $matches[1];
Метод 7: Использование debug_backtrace()
Функция debug_backtrace()предоставляет информацию о стеке вызовов. Получив доступ к первому элементу и используя basename(), вы можете получить текущее имя файла:
$trace = debug_backtrace();
$currentFile = basename($trace[0]['file']);
Метод 8: использование get_included_files()
Если вы хотите получить имя включенного файла, вы можете использовать функцию get_included_files(). Он возвращает массив всех включенных файлов, последний элемент которого представляет текущий файл:
$includedFiles = get_included_files();
$currentFile = basename($includedFiles[count($includedFiles) - 1]);
Метод 9: использование $_SERVER['SCRIPT_NAME']
Переменная $_SERVER['SCRIPT_NAME']содержит путь и имя текущего скрипта. Вы можете извлечь имя файла, используя basename():
$currentFile = basename($_SERVER['SCRIPT_NAME']);
Метод 10: использование $_SERVER['argv']
Если ваш PHP-скрипт выполняется из командной строки и принимает аргументы, вы можете использовать $_SERVER['argv']для получения текущего имени файла:
$currentFile = basename($_SERVER['argv'][0]);
В этой статье мы рассмотрели десять различных методов получения текущего имени файла в PHP. От использования суперглобальных переменных до магических констант и различных функций — теперь у вас есть целый ряд опций на выбор в зависимости от ваших конкретных потребностей. Поэкспериментируйте с этими методами и выберите тот, который лучше всего подходит для вашей задачи программирования.
Помните, что возможность получения текущего имени файла может значительно улучшить ваши PHP-приложения, позволяя создавать динамичные и более персонализированные возможности для ваших пользователей.