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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: как определить имя открытого в данный момент файла

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: для состалвения таблицы коментариев необходимо назначить переменой имя файл данных коментариев
borysnn
Отправлено: 27 Мая, 2010 - 12:03:27
Post Id


Новичок


Покинул форум
Сообщений всего: 16
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




На страница html включается php код для вывода оставленных комментариев и форма для создания новых комментариев. В коде есть переменная Х отвечающая за страницу к которой делается комментарий.
Задача: какой код или стандартная функция определит ИМЯ файла( типо color.html) для его назначения переменной X (по переменно X ведется выборка из общей таблицы комментариев для всего сайта).
Вопрос как узнать имя открытого в данный момент файла?
Я новичок в php В интернете нигде не смог найти примера такого кода.
 
 Top
toropss
Отправлено: 27 Мая, 2010 - 12:14:13
Post Id


Гость


Покинул форум
Сообщений всего: 85
Дата рег-ции: Март 2009  


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1. $x = $_SERVER[PHP_SELF]; // содержит путь к файлу.

Обрезаешь функцией substr() как надо и все

(Отредактировано автором: 27 Мая, 2010 - 12:14:47)

 
 Top
borysnn
Отправлено: 27 Мая, 2010 - 12:26:01
Post Id


Новичок


Покинул форум
Сообщений всего: 16
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




Добавил basename ($x);
и все получил огроменное спасибо Улыбка
мучался с утра Улыбка с таккой мелочью
 
 Top
toropss
Отправлено: 27 Мая, 2010 - 12:50:11
Post Id


Гость


Покинул форум
Сообщений всего: 85
Дата рег-ции: Март 2009  


Помог: 0 раз(а)




И вам спасибо. Тоже узнал, что есть такая функция.
 
 Top
JustUserR
Отправлено: 27 Мая, 2010 - 14:32:04
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




borysnn пишет:
Добавил basename ($x
Переменная окружения $_SERVER['PHP_SELF'] является полезной для определения web-пути к определенному PHP-скрипту - но файловый путь на ее основе может быть и неправильным поскольку она в общем случае генерируется из переменных SCRIPT_NAME и PATH_INFO - которые могут быть определенным образом подменены в HTaccess за счет псевдонимов и PATH_INFO может быть вовсе не настоящим файловым путем Поэтому лучше использовать конструкция типа dirname(__FILE__)


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
borysnn
Отправлено: 27 Мая, 2010 - 15:11:46
Post Id


Новичок


Покинул форум
Сообщений всего: 16
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




JustUserR пишет:
использовать конструкция типа dirname(__FILE__)


я этого синтексиса не понял
FILE- это переменя или так записываеться код????
 
 Top
JustUserR
Отправлено: 27 Мая, 2010 - 15:44:10
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




borysnn пишет:
Я этого синтексиса не понял
FILE- это переменя или так записываеться код????
Приведенный синтаксис дословно так и должен работать - поскольку __FILE__ это специальная константа указывающая на файловый путь текущего PHP-скрипта


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
IIIP
Отправлено: 29 Мая, 2010 - 14:50:42
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1. $path = $_SERVER['PHP_SELF']; $filename = basename($path);

Переменная $filename и будет названием твоего файла, просто ставишь в нужном тебе месте.
 
 Top
borysnn
Отправлено: 29 Мая, 2010 - 15:33:40
Post Id


Новичок


Покинул форум
Сообщений всего: 16
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




IIIP пишет:
PHP:
скопировать код в буфер обмена
  1. $path = $_SERVER['PHP_SELF']; $filename = basename($path);

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


этот вариант в моем случае выводил верное значение но ознакомившись с инструкциями и сравнив оказалось в общем случае будет верна команда
 
 Top
JustUserR
Отправлено: 30 Мая, 2010 - 13:25:33
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




borysnn пишет:
Этот вариант в моем случае выводил верное значение но ознакомившись с инструкциями и сравнив оказалось в общем случае будет верна команда
Так оно и есть поскольку переменная окружения PHP_SELF не является настоящей переменной окружения первого уровня передаваемой из Apache а попросту генерируется PHP-интерпретатором - и поэтому не учитывает возможные особенности в файле .htaccess и тем более не работает если PHP-скрипт запущен не в режиме CGI а например в консоли Использование же директивы __FILE__ всегда верно - поскольку оно указывает именно файловый путь


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
borysnn
Отправлено: 31 Мая, 2010 - 12:37:52
Post Id


Новичок


Покинул форум
Сообщений всего: 16
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




Спасибо но я ничего не понял Огорчение
я новичек и доступной литературы не нашел пока еще
мои знания php пока ограниценны курсов Евгения попова Радость
 
 Top
CodeWarrior
Отправлено: 31 Мая, 2010 - 15:53:54
Post Id



Частый гость


Покинул форум
Сообщений всего: 157
Дата рег-ции: Янв. 2009  
Откуда: Албания


Помог: 0 раз(а)




Цитата:
Спасибо но я ничего не понял

Просто кое кому нужно проще выражаться Ха-ха Ха-ха Ха-ха
ДжастЮзер! ты когда прекратишь выражаться книжным языком? Радость Это пугает новичков xD
 
 Top
JustUserR
Отправлено: 01 Июня, 2010 - 13:37:52
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




borysnn пишет:
Спасибо но я ничего не понял
Пожалуйста! В данном случае имелось в виду что для получения реального именеи файла PHP-скрипта в файловой системе - использование директивы __FILE__ лучше чем использование переменной окружения PHP_SELF - потому что PHP_SELF генерируется на основе web-пути который может содержать псевдонимы и перенаправления и может вообще не существовать как файловый путь - в то время как директива __FILE__ содержит имя реального интерпретируемого файла PHP-скрипта
CodeWarrior пишет:
ДжастЮзер! ты когда прекратишь выражаться книжным языком? Это пугает новичков xD
По мне так надо выражаться достаточно формально но чтобы было понятно о чем идет речь - использовать термины но только для упрощения Улыбка


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
borysnn
Отправлено: 03 Июня, 2010 - 07:07:57
Post Id


Новичок


Покинул форум
Сообщений всего: 16
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




Приходиться опять возращаться к этому вопросу

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

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


и в этом случае переменной fname присвоилось значение название файла где храниться кода а не файла куда вставлен код
вопрос как мне узнать имя файла в котором выполняеться (вставлен с помощью include) код???
 
 Top
JustUserR
Отправлено: 04 Июня, 2010 - 11:24:19
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




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


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB