ファイルパス文字列の末尾からファイル名を取得しようとしています。
$text = "bob/hello/myfile.zip";
ファイル名を取得できるようにしたいのですが、これには、最後のスラッシュ以降のすべてをサブストリングとして取得する必要があると思います。誰かがこれを行う方法を手伝ってくれるのはPHPですか?次のような単純な関数:
$fileName = getFileName($text);
ファイルパス文字列の末尾からファイル名を取得しようとしています。
$text = "bob/hello/myfile.zip";
ファイル名を取得できるようにしたいのですが、これには、最後のスラッシュ以降のすべてをサブストリングとして取得する必要があると思います。誰かがこれを行う方法を手伝ってくれるのはPHPですか?次のような単純な関数:
$fileName = getFileName($text);
チェックアウトbasename()
。
より一般的な必要がある場合は、開始パラメーターに負の値を使用します。
例えば
<?php
$str = '001234567890';
echo substr($str,-10,4);
?>
1234 を出力します
負のパラメータを使用すると、最後から start' 番目の文字から開始することを意味します。
$text = "bob/hello/myfile.zip";
$file_name = end(explode("/", $text));
echo $file_name; // myfile.zip
end()
指定された配列の最後の要素を返します。
Daniel が投稿したように、このアプリケーションでは basename() を使用します。より一般的なニーズについてstrrchr()
は、この投稿のタイトルが要求していることを正確に実行します。
strrpos を使用して最後の「/」を見つけ、その部分文字列を取得できると思います。
$fileName = substr( $text, strrpos( $text, '/' )+1 );
おそらく実際には、最初に「/」が含まれていることを確認することをお勧めします。