13

ファイルパス文字列の末尾からファイル名を取得しようとしています。

$text = "bob/hello/myfile.zip";

ファイル名を取得できるようにしたいのですが、これには、最後のスラッシュ以降のすべてをサブストリングとして取得する必要があると思います。誰かがこれを行う方法を手伝ってくれるのはPHPですか?次のような単純な関数:

$fileName = getFileName($text);
4

6 に答える 6

20

チェックアウトbasename()

于 2010-06-30T14:03:38.000 に答える
13

より一般的な必要がある場合は、開始パラメーターに負の値を使用します。
例えば

<?php
$str = '001234567890';
echo substr($str,-10,4);
?>


1234 を出力します

負のパラメータを使用すると、最後から start' 番目の文字から開始することを意味します。

于 2013-01-03T06:55:26.483 に答える
11
$text = "bob/hello/myfile.zip";
$file_name = end(explode("/", $text));
echo $file_name; // myfile.zip

end()指定された配列の最後の要素を返します。

于 2010-06-30T14:08:15.440 に答える
1

Daniel が投稿したように、このアプリケーションでは basename() を使用します。より一般的なニーズについてstrrchr()は、この投稿のタイトルが要求していることを正確に実行します。

http://us4.php.net/strrchr

于 2010-06-30T14:08:34.287 に答える
0

strrpos を使用して最後の「/」を見つけ、その部分文字列を取得できると思います。

$fileName = substr( $text, strrpos( $text, '/' )+1 );

おそらく実際には、最初に「/」が含まれていることを確認することをお勧めします。

于 2010-06-30T14:07:14.977 に答える