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


PHP Explode - Remove first part of string, then last part

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

数据库转储文件也是用脚本创建的,文件名格式如下:

使用恢复脚本,我需要删除日期戳、连字符和.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