Я хочу показать текущее имя файла страницы как заголовок страницы, но без расширения. И если возможно, первый символ должен быть капитализирован. Это возможно?
Все любят однострочники:
ucfirst(pathinfo($_SERVER['PHP_SELF'], PATHINFO_FILENAME))
Второй аргумент pathinfo()
удаляет путь и расширение из имени файла (PHP> = 5.2)
Btw, я использую $_SERVER['PHP_SELF']
вместо __FILE__
потому что иначе он сломается, если код __FILE__
из другого файла 😉
Да, вы можете это сделать, но вы можете сделать дополнительный синтаксический анализ для пробелов. Однако это самый простой способ и непосредственно в соответствии с вашими инструкциями.
echo '<title>'; echo ucwords(str_replace('.php', '', __FILE__)); echo '</title>';
То, что я сделал здесь, это получить константу FILE, которая является именем исполняемого файла. Найдите расширение .php и замените его пустым (при условии, что «.php» не встречается нигде в имени файла).
Функция ucwords () заглаживает первую букву подстрок, разделенных пробелами.
Если вы хотите продолжить синтаксический анализ для пробелов, вам нужно будет определить формат имен файлов и соответственно заменить строки / регулярное выражение.
Если вы хотите перейти от script.php
к script.php
, да:
// pathinfo give info about given file and returns it into an associative array: $info = pathinfo( __FILE__ ); // the filename key holds file name without extension nor parent path: $title = ucwords( $info['filename'] );
Да, возможно:
<?php $page = basename($_SERVER['PHP_SELF']); // Get script filename without any path information $page = str_replace( array( '.php', '.htm', '.html' ), '', $page ); // Remove extensions $page = str_replace( array('-', '_'), ' ', $page); // Change underscores/hyphens to spaces $page = ucwords( $page ); // uppercase first letter of every word echo "This title is: $page";
Для того чтобы первая буква была ucfirst()
, используйте ucfirst()
. Это первая символьная функция. Вы также можете использовать ucwords()
для слов с верхним регистром.
Чтобы получить имя файла за вычетом расширения, используйте pathinfo()
.
$path_parts = pathinfo(__FILE__); echo ucfirst($path_parts['filename']);
У вас есть 3 скрипта: nav.php containerpage.php и footer.php.
В nav.php, поставьте это:
<title><?php if (isset($subtitle)) {echo "$subtitle";} else {echo "some other title";} ?> </title>
в container.php, поставьте это:
<?php $subtitle = ucwords(str_replace('.php', '', __FILE__)); ?>
после этого строка включает ваш скрипт nav.php:
<?php include("nav.php"); ?>
Это может работать или не работать в зависимости от структуры вашего сайта, но я решил эту проблему еще раз.