Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: как определить имя открытого в данный момент файла
Форумы портала PHP.SU » PHP » Программирование на PHP » как определить имя открытого в данный момент файла

Страниц (2): [1] 2 »
 

1. borysnn - 27 Мая, 2010 - 12:03:27 - перейти к сообщению
На страница html включается php код для вывода оставленных комментариев и форма для создания новых комментариев. В коде есть переменная Х отвечающая за страницу к которой делается комментарий.
Задача: какой код или стандартная функция определит ИМЯ файла( типо color.html) для его назначения переменной X (по переменно X ведется выборка из общей таблицы комментариев для всего сайта).
Вопрос как узнать имя открытого в данный момент файла?
Я новичок в php В интернете нигде не смог найти примера такого кода.
2. toropss - 27 Мая, 2010 - 12:14:13 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $x = $_SERVER[PHP_SELF]; // содержит путь к файлу.

Обрезаешь функцией substr() как надо и все
3. borysnn - 27 Мая, 2010 - 12:26:01 - перейти к сообщению
Добавил basename ($x);
и все получил огроменное спасибо Улыбка
мучался с утра Улыбка с таккой мелочью
4. toropss - 27 Мая, 2010 - 12:50:11 - перейти к сообщению
И вам спасибо. Тоже узнал, что есть такая функция.
5. JustUserR - 27 Мая, 2010 - 14:32:04 - перейти к сообщению
borysnn пишет:
Добавил basename ($x
Переменная окружения $_SERVER['PHP_SELF'] является полезной для определения web-пути к определенному PHP-скрипту - но файловый путь на ее основе может быть и неправильным поскольку она в общем случае генерируется из переменных SCRIPT_NAME и PATH_INFO - которые могут быть определенным образом подменены в HTaccess за счет псевдонимов и PATH_INFO может быть вовсе не настоящим файловым путем Поэтому лучше использовать конструкция типа dirname(__FILE__)
6. borysnn - 27 Мая, 2010 - 15:11:46 - перейти к сообщению
JustUserR пишет:
использовать конструкция типа dirname(__FILE__)


я этого синтексиса не понял
FILE- это переменя или так записываеться код????
7. JustUserR - 27 Мая, 2010 - 15:44:10 - перейти к сообщению
borysnn пишет:
Я этого синтексиса не понял
FILE- это переменя или так записываеться код????
Приведенный синтаксис дословно так и должен работать - поскольку __FILE__ это специальная константа указывающая на файловый путь текущего PHP-скрипта
8. IIIP - 29 Мая, 2010 - 14:50:42 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $path = $_SERVER['PHP_SELF']; $filename = basename($path);

Переменная $filename и будет названием твоего файла, просто ставишь в нужном тебе месте.
9. borysnn - 29 Мая, 2010 - 15:33:40 - перейти к сообщению
IIIP пишет:
PHP:
скопировать код в буфер обмена
  1. $path = $_SERVER['PHP_SELF']; $filename = basename($path);

Переменная $filename и будет названием твоего файла, просто ставишь в нужном тебе месте.


этот вариант в моем случае выводил верное значение но ознакомившись с инструкциями и сравнив оказалось в общем случае будет верна команда
PHP:
скопировать код в буфер обмена
  1.  $fname= basename (__FILE__);
10. JustUserR - 30 Мая, 2010 - 13:25:33 - перейти к сообщению
borysnn пишет:
Этот вариант в моем случае выводил верное значение но ознакомившись с инструкциями и сравнив оказалось в общем случае будет верна команда
Так оно и есть поскольку переменная окружения PHP_SELF не является настоящей переменной окружения первого уровня передаваемой из Apache а попросту генерируется PHP-интерпретатором - и поэтому не учитывает возможные особенности в файле .htaccess и тем более не работает если PHP-скрипт запущен не в режиме CGI а например в консоли Использование же директивы __FILE__ всегда верно - поскольку оно указывает именно файловый путь
11. borysnn - 31 Мая, 2010 - 12:37:52 - перейти к сообщению
Спасибо но я ничего не понял Огорчение
я новичек и доступной литературы не нашел пока еще
мои знания php пока ограниценны курсов Евгения попова Радость
12. CodeWarrior - 31 Мая, 2010 - 15:53:54 - перейти к сообщению
Цитата:
Спасибо но я ничего не понял

Просто кое кому нужно проще выражаться Ха-ха Ха-ха Ха-ха
ДжастЮзер! ты когда прекратишь выражаться книжным языком? Радость Это пугает новичков xD
13. JustUserR - 01 Июня, 2010 - 13:37:52 - перейти к сообщению
borysnn пишет:
Спасибо но я ничего не понял
Пожалуйста! В данном случае имелось в виду что для получения реального именеи файла PHP-скрипта в файловой системе - использование директивы __FILE__ лучше чем использование переменной окружения PHP_SELF - потому что PHP_SELF генерируется на основе web-пути который может содержать псевдонимы и перенаправления и может вообще не существовать как файловый путь - в то время как директива __FILE__ содержит имя реального интерпретируемого файла PHP-скрипта
CodeWarrior пишет:
ДжастЮзер! ты когда прекратишь выражаться книжным языком? Это пугает новичков xD
По мне так надо выражаться достаточно формально но чтобы было понятно о чем идет речь - использовать термины но только для упрощения Улыбка
14. borysnn - 03 Июня, 2010 - 07:07:57 - перейти к сообщению
Приходиться опять возращаться к этому вопросу

в коде я просал
PHP:
скопировать код в буфер обмена
  1. $fname= basename (__FILE__);   /*назначаем переменной fname имя файла*/

и все робатало хорошо до тех пор пока я не решил этот блок кода помещать в файл с помощью оператора
PHP:
скопировать код в буфер обмена
  1.  include ("kodkom.php"); /*вставляем код из файла кода коментариев*/


и в этом случае переменной fname присвоилось значение название файла где храниться кода а не файла куда вставлен код
вопрос как мне узнать имя файла в котором выполняеться (вставлен с помощью include) код???
15. JustUserR - 04 Июня, 2010 - 11:24:19 - перейти к сообщению
borysnn пишет:
И в этом случае переменной fname присвоилось значение название файла где храниться кода а не файла куда вставлен код
Вопрос как мне узнать имя файла в котором выполняеться (вставлен с помощью include) код???
Несмотря на то что в PHP нет пакетных и именных областей имен все равно каждый PHP-скрипт представляет собой отдельную исполняемую единицу - и директива __FILE__ указывает файловый путь текущей файловой единицы вне зависимости от способа включения и интерпретации
Таким образом подключение файла PHP-скрипта означает его исполнение поскольку он исполняется именно в том файле где располагается PHP-код а не в подлюкченном - то есть при желании данный PHP-скрипт мог подключить и запустить на исполнение любой CGI-скрипт - который можно узнать по переменной окружения SCRIPT_NAME и далее к примеру с помощью файла .htaccess проанализировать его реальное имя

 

Powered by ExBB FM 1.0 RC1