3

我想将当前页面文件名显示为页面标题,但没有扩展名。如果可能,第一个字符应该大写。这可能吗?

4

7 回答 7

14

每个人都喜欢单行:

ucfirst(pathinfo($_SERVER['PHP_SELF'], PATHINFO_FILENAME))

从文件名中去除路径和扩展名的第二个参数pathinfo()(PHP >= 5.2)

顺便说一句,我使用$_SERVER['PHP_SELF']而不是__FILE__因为否则如果代码从另一个文件运行它会中断;-)

于 2012-08-30T16:06:39.370 回答
1

如果你想从script.phpScript,是的:

// 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'] );
于 2012-08-30T15:59:32.173 回答
1

对于第一个字母需要大写,使用ucfirst(). 那就是大写优先字符函数。您也可以ucwords()用于大写单词。

要获得文件名减去扩展名,请使用pathinfo()funciton

$path_parts = pathinfo(__FILE__);

echo ucfirst($path_parts['filename']);
于 2012-08-30T16:01:17.947 回答
1

是的,您可以这样做,但您可能需要对空格进行一些额外的解析。但是,这是最简单的方法,并且直接按照您的指示进行。

echo '<title>';
echo ucwords(str_replace('.php', '', __FILE__));
echo '</title>';

我在这里所做的是获取FILE常量,它是正在执行的文件的名称。找到 .php 扩展名并将其替换为空白(假设“.php”不会出现在文件名中的其他任何位置)。

函数 ucwords() 将由空格分隔的子字符串的首字母大写。

如果您想进一步解析空格,则需要识别文件名的格式并相应地进行字符串替换/正则表达式。

于 2012-08-30T15:58:54.493 回答
0

是的,有可能:

<?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";
于 2012-08-30T15:59:27.817 回答
0

您有 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"); ?>

根据您的站点结构,这可能会或可能不会起作用,但这就是我在其他时候解决此问题的方式。

于 2012-08-30T16:30:00.587 回答
0

我知道这个问题已有 6 年历史,但我只是想提供另一种获取文件名的方法。

$_SERVER['SCRIPT_FILENAME']

或者

$_SERVER['SCRIPT_NAME']

查看SERVER 全局上的PHP 文档。

于 2018-07-10T00:17:07.743 回答