PHP获取当前页面名称没有扩展名?

时间:2012-08-30 15:55:14

标签: php

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

7 个答案:

答案 0 :(得分:12)

每个人都喜欢单行:

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

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

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

答案 1 :(得分:1)

是的,你可以这样做,但你可能想要为空格做一些额外的解析。但是,这是最简单的方法,并且直接根据您的指示。

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

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

函数ucwords()将由空格分隔的子串的第一个字母大写。

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

答案 2 :(得分:1)

如果您想从script.php转到Script,是的:

// 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'] );

答案 3 :(得分:1)

首字母需要大写,请使用ucfirst()。这是大写第一个字符函数。您也可以将ucwords()用于大写字词。

要获取文件名减去extension,请使用pathinfo() funciton

$path_parts = pathinfo(__FILE__);

echo ucfirst($path_parts['filename']);

答案 4 :(得分: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";

答案 5 :(得分: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"); ?>

根据您的网站结构,这可能有效,也可能无效,但这是我在其他时间解决此问题的方法。

答案 6 :(得分:0)

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

$_SERVER['SCRIPT_FILENAME']

$_SERVER['SCRIPT_NAME']

在SERVER全局服务器上签出PHP docs