Как регулярным выражением прочитать имя файла?

Я может не правильно задал вопрос но суть такова есть файлы с именами типа 127.0.0.1-353464775.dat как регулярным выражением при чтение удалять из имени файла первую часть имени ну типа чтоб оставалось 353464775.dat ну както так $files = glob ( '../ip_user/*' . $_GET['ref'] . '.dat' ); но шото уменя сомнение что я правильно это делаю как еще можно это сделать
  • Вопрос задан
  • 79 просмотров
Пригласить эксперта
Ответы на вопрос 3
Если я правильно понял и вам нужно получить все после знака "-", то воспользуйтесь такой регуляркой:

$string = 'ip-ref 127.0.0.1-353464775.dat';
preg_match('/([^-]+.dat)$/', $string, $matches);

var_dump($matches[0]);
Ответ написан
Лучше использовать pathinfo https://www.php.net/manual/ru/function.pathinfo.php

$files = glob ( "../ip_user/*{$_GET["ref"]}.dat");
$fileName = [];
if(!empty($files)){
    foreach ($files as $path) {
        $pathInfo = pathinfo($path);
        $fileName[] = $pathInfo["filename"].".".$pathInfo["extension"];
    }
}
print_r($fileName);
Ответ написан
@posters
<?php

foreach (new \DirectoryIterator('путь до папки с файлами') as $fileInfo) {
    if($fileInfo->isDot()) continue;
    $file_name = $fileInfo->getFilename();  // здесь мы получили имя файла
}

?>


Переменную $file_name следует обработать регуляркой из этого ответа
https://qna.habr.com/answer?answer_id=1805653#answ...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы