Получение имени файла в PHP - PullRequest
2 голосов
/ 17 ноября 2008

Как я могу получить имя файла в PHP? Я хочу, чтобы функция взяла строку с именем файла, а затем сделала кое-что, если оно действительно есть на странице.

function onThisPageFunction(fileNameFromFunction)  
{  
  if(onThisPage == fileNameFromFunction)  
  {  
    do stuff  
  }  
}

Ответы [ 5 ]

7 голосов
/ 17 ноября 2008

Есть две переменные, которые дадут вам имена файлов.

Например: вы вызываете /test/test1.php в качестве URL-адреса, а test1.php включает test2.php.

__FILE__ выдаст вам текущий файл исполняемого кода, в этом случае он вернет "test2.php"

$_SERVER['PHP_SELF'] даст вам полный URL исходного вызова, в этом случае "/test/test1.php"

Обратите внимание, что вы можете использовать функцию basename () , чтобы получить только имя файла из пути.

3 голосов
/ 17 ноября 2008

Если я правильно понимаю, вы хотите __FILE__.

Ссылка: http://php.net/manual/en/language.constants.predefined.php

0 голосов
/ 18 ноября 2008

Спасибо за ваши ответы. Это то, что в итоге сделало всю работу за меня.

function menuStrikethrough($pageName)
    {
        // get the name of the page we're on
        $fileName = basename($_SERVER['PHP_SELF']);

        // if fileName equals pageName then output css to show a strikethrough
        if($fileName == $pageName)
        {
            echo ' style="text-decoration:line-through" ';
        }
    }

Я обнаружил, ____FILE____ не работает для меня, потому что я написал эту функцию во включенном файле.

Подсказка базового имени пригодилась.

Спасибо за помощь!

0 голосов
/ 17 ноября 2008
if (realpath($_SERVER['SCRIPT_NAME']) === __FILE__) {
    echo "Called directly";
}

Работает и в командной строке.

0 голосов
/ 17 ноября 2008

Я думаю, что вы хотите использовать:

_SERVER["PHP_SELF"]

например:

    if (isset($_SERVER["PHP_SELF"]) AND  ($_SERVER["PHP_SELF"] == 'foo')){
echo 'do stuff';
}

Будет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...