PHP Explode - удалить первую часть строки, затем последнюю часть - PullRequest
1 голос
/ 28 июля 2011

Я создаю простой сценарий восстановления базы данных, но наткнулся на дорогу.

Файлы дампа базы данных также создаются с помощью скрипта и имеют следующий формат имени файла: datetamp-dbname.sql

С помощью скрипта восстановления мне нужно удалить метку даты, дефис и .sql, чтобы просто оставить имя базы данных.

У меня сейчас есть это, которое удаляет первую часть, но мне нужно удалить и .sql.

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

Спасибо.

Ответы [ 3 ]

4 голосов
/ 28 июля 2011
list ($timestamp, $dbname) = explode('-', basename($filename, '.sql'));

basename() (с необязательным вторым аргументом) удаляет расширение файла.Остальное тривиально.

Другое решение:

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

Просто возьмите строку между - (исключая: +1) и 4 символа до конца строки.

Я бы предпочел первое решение, потому что оно мне кажется немного чище (и даже более читабельным)

0 голосов
/ 28 июля 2011
$getfilename = $_GET['filename'];
$dbname = explode("-", $getfilename);
$dbname[1] // this is what you need
0 голосов
/ 28 июля 2011

Первый элемент массива имеет индекс ноль, а не один.Вы хотите:

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