13

重複の可能性:
文字列から拡張子を削除する方法(実際の拡張子のみ!)

私はphpを初めて使用し、学ぶことがたくさんあります。King CountyIrisSocietyのWebサイトでMiniGalNanoを試しています。写真ファイル名がサムネイルの下に表示される必要があるという1つの小さな例外を除いて、これは私たちの目的には非常にうまく機能します。回避策を作成しましたが、拡張機能が表示されます。関数のコードサンプルを見つけましたが、それらを既存のコードに組み込む方法がわかりません。どんな援助でも大歓迎です。

リンク例:http ://www.kcis.org/kcisphotogallery.php?dir = Iris.Japanese

どうもありがとう!

4

3 に答える 3

30

それを行うにはいくつかの方法がありますが、私はより速い方法の1つは次のとおりだと思います

// $filename has the file name you have under the picture
$temp = explode('.', $filename);
$ext  = array_pop($temp);
$name = implode('.', $temp);

別の解決策はこれです。私はそれをテストしていませんが、ファイル名で複数の期間動作するはずです

$name = substr($filename, 0, (strlen($filename))-(strlen(strrchr($filename, '.'))));

また:

$info = pathinfo($filename);
$name = $info['filename'];
$ext  = $info['extension'];

// Shorter
$name = pathinfo($file, PATHINFO_FILENAME);

// Or in PHP 5.4
$name = pathinfo($filename)['filename'];

これらすべてに$name、拡張子なしのファイル名が含まれています

于 2013-01-07T21:58:48.173 に答える
8

あなたはそのために使うことができますpathinfo()

<?php

// your file
$file = 'image.jpg';

$info = pathinfo($file);

// from PHP 5.2.0 :
$file_name = $info['filename'];

// before PHP 5.2.0 :
// $file_name =  basename($file,'.'.$info['extension']);

echo $file_name; // outputs 'image'

?>
于 2013-01-07T22:00:17.597 に答える
3

ファイル拡張子が常に4文字になることが確実な場合(「.jpg」など)、substr()ファイル名を出力する場所を使用するだけです。

echo substr($filename, 0, -4);

ファイル拡張子(「.jpeg」など)に多かれ少なかれ文字が含まれる画像が含まれる可能性がある場合は、最後のピリオドがどこにあるかを確認する必要があります。最初の文字からファイル名を出力しているので、そのピリオドの位置を使用して、表示する文字数を示すことができます。

$period_position = strrpos($filename, ".");
echo substr($filename, 0, $period_position);

これらの関数の詳細については、http ://php.net/substrおよびhttp://php.net/strrposにあるPHPマニュアルを確認してください。

于 2013-01-07T22:12:10.860 に答える