Я пытаюсь получить имя исполняемого скрипта (но не включить его вызывает).PHP Магические константы
echo basename(__FILE__); # will always output include.php
echo basename($_SERVER['SCRIPT_FILENAME']);
# This will do what I want (echo myscript.php), but I was wondering if there was
# a better way to grab it, as I have had problems with $_SERVER['SCRIPT_FILENAME']
# when running certain scripts from a cron.
Любые предложения?
<?
#myscript.php
require('include.php');
echo "Hello all";
?>
<?
#include.php
echo basename(__FILE__);
echo basename($_SERVER['SCRIPT_FILENAME']);
?>
Спасибо!
Просто, чтобы сообщить, по какой-либо причине, старый сервер, в котором я использовал $ _SERVER ['SCRIPT_FILENAME'] и, возможно, $ _SERVER ['SCRIPT_NAME'] ничего не возвращал при запуске через cron. Но я говорю вам об использовании SCRIPT_NAME над SCRIPT_FILENAME. Так спасибо – Lizard
$ _SERVER ["argv"] [0] может иметь то, что вы хотите. – Neel
argv [0] - это имя сценария, так как оно вызывается линией cmd, поэтому путь включен как абсолютный, относительный (путь/имя.php, ./path/name.php и т. Д.) В зависимости от __how__ вы вызываете скрипт , Более того, это может быть неопределенным, если не в среде cli – drAlberT