PHP爆炸 - 删除字符串的第一部分,然后删除最后一部分

时间:2011-07-28 18:11:28

标签: php explode

我正在创建一个简单的数据库恢复脚本,但我遇到了一个障碍。

数据库转储文件也是使用脚本创建的,并具有以下文件名格式:datestamp-dbname.sql

使用还原脚本,我需要删除日期戳,连字符和.sql,以保留dbname。

我目前有这个,它删除了第一部分,但我也需要删除.sql。

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

感谢。

3 个答案:

答案 0 :(得分:4)

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

basename()(带有可选的第二个参数)删除文件扩展名。其余的都是微不足道的。

另一种解决方案:

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

只需在字符串结尾之前取-(不包括:+1)和4个字符之间的字符串。

我更喜欢第一种解决方案,因为它对我来说感觉有点干净(甚至更可读)

答案 1 :(得分:0)

数组的第一个元素的索引为零,而不是一个。你想要:

$tmp = explode('-', $getfilename);
$dbname = $tmp[1];

答案 2 :(得分:0)

$getfilename = $_GET['filename'];
$dbname = explode("-", $getfilename);
$dbname[1] // this is what you need