0

大文字のファイル名のみを表示しようとしています。ドメインのルート ディレクトリで完全に動作するようになりました。

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

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

ただし、ディレクトリが 1 つまたは 2 つダウンしている場合は、パスも返されます。

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

結果: ワン ツー スリー フォー ファイブ

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

結果: Testone Two Three Four Five // 完璧ではない

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

結果: Testpathtestone Two Three Four Five // 完全ではない

パスを取り除く方法がわかりません。どこでも答えを探しましたが、近くにさえ何も見つかりません。

また、いずれかまたは両方のシナリオで機能するものはありますか? (私は願います)

4

2 に答える 2

0

分解()関数を使用してパスを各フォルダ名とファイル名に分割し、配列の最後の要素を大文字にして配列を出力してみてください。

例えば:

$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 に答える