2011-07-28 22 views
1

私は単純なデータベースの復元スクリプトを作成していますが、私は道路のバンプに遭遇しました。PHPの爆発 - 文字列の最初の部分を削除し、最後の部分を削除します

データベース・ダンプ・ファイルは、同様のスクリプトを使用して作成し、以下のファイル名の形式持っている:復元スクリプトで日付スタンプ-dbname.sql

を、私は、日付スタンプ、ハイフンと.SQLを削除する必要がありますdbnameを残すだけです。

私は現在これを持っていますが、最初の部分は削除されていますが、.sqlも削除する必要があります。

$getfilename = $_GET['filename']; 
$dbname = explode("-", $getfilename[2]); 

ありがとう。

答えて

4
list ($timestamp, $dbname) = explode('-', basename($filename, '.sql')); 

basename()(オプションの第2引数付き)は、ファイル拡張子を削除します。残りは自明です。

別の解決策:文字列の末尾の前と4つの文字:

$dbname = substr($filename, strpos($filename, '-') + 1, -4); 

ジャスト(+1を除く)-の間の文字列を取ります。

私はそれが私には少しクリーナーを感じているので、最初のソリューションを好む(そして、より読みやすい)でしょう

+0

。ありがとう。 – Spencer

0

配列の最初の要素はインデックスゼロではなく、いずれかを持っています。あなたが欲しい:最初のソリューションは完全に働いた

$tmp = explode('-', $getfilename); 
$dbname = $tmp[1]; 
0
$getfilename = $_GET['filename']; 
$dbname = explode("-", $getfilename); 
$dbname[1] // this is what you need 
関連する問題