Напечатать имя файла, включая файл, не входит

Я имею example1.php а также example2.php которые включают example3.php, В example3.php Я имею:

<link rel="canonical" href="http://website.com/<?php echo basename(__FILE__); ?>">

Я хотел иметь example1.php/example2.php в href зависит от файла, в том числе example3.php, Проблема в том, что, конечно, __FILE__ выходы example3.php, Можно ли получить имя файла включаемого файла, а не включенного?

Пожалуйста, не предлагайте использовать уязвимый XSS SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'],

2 ответа

Решение

(Предупреждение: этот трюк может не масштабироваться, но будет работать именно в этом случае.)

Используйте элемент 0 возврата из get_included_files (). Это будет оригинальный файл, который начал цепочку

внутри example3.php:

$gif = get_included_files();

тогда вы можете сделать

<link rel="canonical" href="http://website.com/<?php echo basename($gif[0]); ?>">

Если вы не хотите использовать какие-либо типы $_SERVER[''] для получения имени файла, которое вы можете использовать

pathinfo(__FILE__, PATHINFO_BASENAME)

просто получить желаемое имя файла

Другие вопросы по тегам