Как возвращает только имя файла, без пути


, Ребята, как я могу этот код мне возвращать только имя файла.

С помощью этого кода текущее он та меня, возвращая весь путь к файлу, например:

Файлы/IES.pptx

Мне нужно, чтобы он только возвращал имя или имя с расширением Ex:

IES или IES.pptx

Следующий код.

<?php
// Recupera a lista de todos os arquivos:
$itens = glob("arquivos/*");

// Ordena os arquivos pela data de modificacão:
usort($itens, function ($a, $b) { return filemtime($a) < filemtime($b); });

// Pega apenas os cinco últimos modificados:
$cont = array_slice($itens, 0, 5);

foreach ($cont   as $arq )

echo  "<a href=  ".$arq." > ".$arq." </a><br>";
?>
 2
php
Author: Aurélio Castro, 2017-04-13

3 answers

, basename должны решить:

<?php
// Recupera a lista de todos os arquivos:
$itens = glob("arquivos/*");

// Ordena os arquivos pela data de modificacão:
usort($itens, function ($a, $b) {
   return filemtime($a) < filemtime($b);
});

// Pega apenas os cinco últimos modificados:
$cont = array_slice($itens, 0, 5);

foreach ($cont as $arq) {
    $nome = basename($arq);
    echo '<a href="' . $arq . '"> '. $nome . '</a><br>';
}

(зависит от того, что вы хотите):

$nome = basename($arq);
echo '<a href="' . $nome . '"> '. $nome . '</a><br>';

, Если хотите, без расширения (если файлы, они все же формате):

<?php
// Recupera a lista de todos os arquivos:
$itens = glob("arquivos/*");

// Ordena os arquivos pela data de modificacão:
usort($itens, function ($a, $b) {
   return filemtime($a) < filemtime($b);
});

// Pega apenas os cinco últimos modificados:
$cont = array_slice($itens, 0, 5);

foreach ($cont as $arq) {
    $nome = basename($arq, '.pptx');
    echo '<a href="' . $arq . '"> '. $nome . '</a><br>';
}

, Если у вас модули разнообразны:

<?php
// Recupera a lista de todos os arquivos:
$itens = glob("arquivos/*");

// Ordena os arquivos pela data de modificacão:
usort($itens, function ($a, $b) {
   return filemtime($a) < filemtime($b);
});

// Pega apenas os cinco últimos modificados:
$cont = array_slice($itens, 0, 5);

foreach ($cont as $arq) {
    $nome = pathinfo($arq, PATHINFO_FILENAME);
    echo '<a href="' . $arq . '"> '. $nome . '</a><br>';
}
 2
Author: Guilherme Nascimento, 2017-04-13 16:19:00

, Чтобы получить имя файла из полного пути:

 $this_page = basename($_SERVER['REQUEST_URI']); // caminho e nome do arquivo
 if (strpos($this_page, "?") !== false) $this_page = reset(explode("?", $this_page));
 0
Author: Rene Freak, 2017-04-13 15:31:23

Вы Можете комбинировать strrchr(), который возвращает последнюю часть строки после разделителя (он входит вместе, как возвращение) trim() удалить / остатка.

$arr = array('public/html/p1/js/f.js', 'p2/main/file.txt', 'p3/readme.txt', 'pics/1.jpg');

foreach ($arr as $item) {
    echo trim(strrchr($item, '/'), '/') .'<br>';
}

Выход:

f.js
file.txt
readme.txt
1.jpg

Другой вариант-это использовать функцию pathinfo(), второй аргумент говорит она возвращает только имя файла. Папка, имя и расширение без расширения и другие варианты.

foreach ($arr as $item) {
    echo  pathinfo($item, PATHINFO_BASENAME) .'<br>';
}
 0
Author: rray, 2017-04-13 15:41:06