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 » » Вопросы новичков » как узнать имя страницы?

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

1. SofiaKit - 16 Июля, 2011 - 17:50:41 - перейти к сообщению
вот хотелось бы вывести на странице имя, к примеру открыта страница index.php, и чтоб писалось: Страница index , если открываю страницу files.php, писалось Страница files

Можно ли так сделать?
2. EuGen - 16 Июля, 2011 - 18:06:10 - перейти к сообщению
Можете так:
PHP:
скопировать код в буфер обмена
  1. preg_match("/^(.*?)\./", $_SERVER['SCRIPT_FILENAME'], $rgMatches);
  2. echo('Имя страницы: '.$rgMatches[1])
3. SofiaKit - 16 Июля, 2011 - 18:17:18 - перейти к сообщению
к сожалению так пишет полностью дирикторию.
(Добавление)
может быть от сюда как-то можно вырезать расширение?
4. LIME - 16 Июля, 2011 - 18:21:40 - перейти к сообщению
SofiaKithttp://php.su/functions/?substr для $_SERVER['SCRIPT_FILENAME']
(Добавление)
http://php.su/functions/?cat=strings хотябы бегло просмотрите
5. EuGen - 16 Июля, 2011 - 18:42:10 - перейти к сообщению
Цитата:
If a script is executed with the CLI, as a relative path, such as file.php or ../file.php, $_SERVER['SCRIPT_FILENAME'] will contain the relative path specified by the user.

Я и забыл, что только в CLI будет без каталога (запуская скрипт из той же директории).
Прошу прощения.
Тогда просто добавьте:
PHP:
скопировать код в буфер обмена
  1. preg_match("/^(.*?)\./", pathinfo($_SERVER['SCRIPT_FILENAME'], PATHINFO_BASENAME), $rgMatches);
  2. echo('Имя страницы: '.$rgMatches[1])


Правда, это выбирает "до первой точки". Не очень понятно, что считать именем, если скрипт имеет название index.php.php.php к примеру. Ну да полагаю, таких вариантов и не рассматривается.
6. SofiaKit - 16 Июля, 2011 - 21:04:17 - перейти к сообщению
LIME прочитала, не нашла ничего подходящего... к сожалению Огорчение
7. Slavenin - 16 Июля, 2011 - 22:19:42 - перейти к сообщению
а воспользоваться волшебной константой __FILE__ не катит? Подмигивание
8. EuGen - 16 Июля, 2011 - 22:21:22 - перейти к сообщению
Нет, так как это не то, что нужно автору:
http://www.php.net/manual/en/lan...s.predefined.php
Цитата:
__FILE__ The full path and filename of the file. If used inside an include, the name of the included file is returned. Since PHP 4.0.2, __FILE__ always contains an absolute path with symlinks resolved whereas in older versions it contained relative path under some circumstances.
9. Slavenin - 16 Июля, 2011 - 23:04:13 - перейти к сообщению
Цитата:
Полный путь и имя текущего файла. Если используется внутри подключаемого файла, то возвращается имя данного файла.

PHP:
скопировать код в буфер обмена
  1. $arr = split('/', __FILE__);
  2. $file = $arr[(count($arr)-1)]
10. kisil-mike - 20 Октября, 2012 - 16:09:26 - перейти к сообщению
конкретно в данном случае я сделал так
CODE (htmlphp):
скопировать код в буфер обмена
  1. $link =  str_replace(".php", "", $_SERVER['PHP_SELF']);
  2. echo str_replace("/", "", $link);

но это неправильно Улыбка

Или в одну строку:
CODE (htmlphp):
скопировать код в буфер обмена
  1. echo str_replace("/", "", ($link =  str_replace(".php", "", $_SERVER['PHP_SELF'])));

Впечатляюще, правда?
11. AlexAnder - 20 Октября, 2012 - 16:22:19 - перейти к сообщению
Цитата:
Впечатляюще, правда?

очень Ха-ха
12. kappa - 20 Октября, 2012 - 16:34:03 - перейти к сообщению
А так ?

PHP:
скопировать код в буфер обмена
  1. $name = pathinfo($_SERVER['SCRIPT_FILENAME']);
  2. echo $name['filename'];
13. EuGen - 20 Октября, 2012 - 19:19:26 - перейти к сообщению
С Новым Годом.

 

Powered by ExBB FM 1.0 RC1