2013-01-07 9 views
11

可能性の重複:
How remove extension from string (only real extension!)削除拡張

私はPHPに新しいブランドですし、学ぶことがたくさんあります!私はKingGall County Iris SocietyのウェブサイトでMiniGal Nanoを試しています。サムネイルの下に写真のファイル名が表示される必要があります。私は回避策を作成しましたが、拡張子を示しています。私は関数のコードサンプルを見つけましたが、それらを既存のコードにどのように組み込むのか分かりません。どんな支援も大歓迎です。

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

多くの感謝!

+0

要するに、スクリプト名から '.php'を削除したいのですか? – Supericy

+0

"拡張機能"の定義方法によって異なります。最後のドットの後のすべて?どんなドットの後ろのすべて?正規表現を使用したり、部分文字列で細かいことをすることはできますが、削除しようとしていることを論理的に定義する必要があります。 'somefile.jpeg'や' some.file.jpg'のようなファイル名、あるいは 'extension 'のない' somefile'だけを考えてみましょう。 – David

答えて

28

あり、それを行うにはいくつかの方法がありますが、私は、迅速な方法の一つは、以下の

// $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は、拡張子なしのファイル名が含まれています

+2

それは悪くないですが、 'my.image.jpg'には役に立たないでしょう –

+0

もう1つ追加しました。あなたがhahaに返信したときにそれを見つけようとしていました – Ascherer

+1

あなたは最初の配列の要素をポップしてからアレイに再び参加します。 – automaticoo

7

これには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' 

?> 
+4

'pathinfo()'関数から必要なものだけを尋ねる方が普通です: 'pathinfo($ file、PATHINFO_FILENAME)' – salathe

3

ファイル拡張子は常に4つの文字になるだろうされていることを確実に分かっている場合(例えば「.JPG」)、あなたは単にsubstr()あなたの出力ファイル名を使用することができます。

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

をファイル拡張子に多かれ少なかれ文字が含まれている画像がある可能性がある場合(例: ".jpeg")、最後の期間がどこであるかを調べる必要があります。あなたが最初の文字からファイル名を出力しているので、その期間の位置は、表示したい文字の数を示すために使用することができます、これらの機能の詳細については

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

http://php.net/substrでPHPのマニュアルをチェックアウトし、 http://php.net/strrpos

関連する問題