0

我试图只显示大写的文件名。我已经做到了这一点,它在域的根目录中完美运行:

$path = $_SERVER["SCRIPT_NAME"]; 
$path = str_replace('_', ' ', ($path));
$path = str_replace('/', '', ($path)); 
$path = ucwords($path);

echo basename ($path,".php");

但是,如果我在一个或两个目录下,它也会返回路径。

例子: /public_html/mydomain-com/one_two_three_four_five.php

结果:一二三四五//完美我想要的

例子: /public_html/mydomain-com/test/one_two_three_four_five.php

结果:睾丸二三四五//不完美

例子: /public_html/mydomain-com/test/pathtest/one_two_three_four_five.php

结果:Testpathtestone 二三四五 // 不完美

我无法弄清楚如何摆脱路径并到处寻找答案,但找不到任何接近的东西。

此外,是否有适用于任何一种/或两种情况的东西?(我希望)

4

2 回答 2

0

尝试使用 explode() 函数将路径拆分为每个文件夹名和文件名,然后将数组的最后一个元素大写并打印出数组。

例如:

$fields = explode('/', $path);

$fields[count($fields)-1] = ucwords($fields[count($fields)-1]);
$new_path = "";
foreach($fields as $field) {
    $new_path .= $field . ' ';
}

$new_path = str_replace('_', ' ', $new_path);
于 2013-02-18T01:20:06.867 回答
0

你可以使用这样的东西

$pos = strrpos($path, '/');
$path = substr($path, $pos);
$path = str_replace('_', ' ', $path);
$path = ucwords($path);

这将做的是找到最后一次出现的/,然后返回子字符串。脚本的其余部分保持不变。

于 2013-02-18T01:23:07.863 回答