我正在创建一个简单的数据库恢复脚本,但是我遇到了一个问题。
数据库转储文件也是用脚本创建的,文件名格式如下:
使用恢复脚本,我需要删除日期戳、连字符和.sql,只留下dbname。
我目前有这个,它删除了第一部分,但我需要删除。sql以及。
$getfilename = $_GET['filename'];
$dbname = explode("-", $getfilename[2]);
谢谢。
list ($timestamp, $dbname) = explode('-', basename($filename, '.sql'));
basename()
(带可选的第二个参数)删除文件扩展名。
另一个解决方案:
$dbname = substr($filename, strpos($filename, '-') + 1, -4);
取-
(不包括:+1
)和字符串结束前4个字符之间的字符串
我更喜欢第一个解决方案,因为我觉得它更干净一点(甚至更可读)
数组的第一个元素的索引是0,而不是1。你想要的:
$tmp = explode('-', $getfilename);
$dbname = $tmp[1];
$getfilename = $_GET['filename'];
$dbname = explode("-", $getfilename);
$dbname[1] // this is what you need