我正在创建一个简单的数据库恢复脚本,但我遇到了一个障碍。
数据库转储文件也是使用脚本创建的,并具有以下文件名格式:datestamp-dbname.sql
使用还原脚本,我需要删除日期戳,连字符和.sql,以保留dbname。
我目前有这个,它删除了第一部分,但我也需要删除.sql。
$getfilename = $_GET['filename'];
$dbname = explode("-", $getfilename[2]);
感谢。
答案 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