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