selezionare Il modo migliore per ottenere file da una directory filtrata da determinate estensioni in php



php glob (6)

Possibile duplicato:
Elenco PHP di file specifici in una directory
usa php scandir ($ dir) e ottieni solo immagini!

Quindi adesso ho una directory e sto ricevendo un elenco di file

$dir_f = "whatever/random/";
$files = scandir($dir_f);

Questo, tuttavia, recupera tutti i file in una directory. Come posso recuperare solo i file con una certa estensione come .ini nel modo più efficiente.


Answer #1

Se desideri cercare più di un'estensione, allora preg_grep() è un'alternativa per il filtro:

 $files = preg_grep('~\.(jpeg|jpg|png)$~', scandir($dir_f));

Sebbene glob abbia una sintassi aggiuntiva simile. Questo ha più senso se si hanno ulteriori condizioni, aggiungere il flag ~i per la distinzione tra maiuscole e minuscole o filtrare gli elenchi combinati.


Answer #2

prova questo

//path to directory to scan
$directory = "../file/";

//get all image files with a .txt extension.
$file= glob($directory . "*.txt ");

//print each file name
foreach($file as $filew)
{
echo $filew;
$files[] = $filew; // to create the array

}

Answer #3

glob()

<?php
foreach (glob("*.txt") as $filename) {
    echo "$filename size " . filesize($filename) . "\n";
}
?>

Answer #4

La funzione glob() di PHP ti consente di specificare un modello da cercare.


Answer #5

PHP ha una grande funzione per aiutarti a catturare solo i file che ti servono. Si chiama glob()

glob : trova i percorsi corrispondenti a un modello

Ecco un esempio di utilizzo:

$files = array();
foreach (glob("/path/to/folder/*.txt") as $file) {
  $files[] = $file;
}

Riferimento -


Answer #6

Puoi provare a utilizzare GlobIterator

$iterator = new \GlobIterator(__DIR__ . '/*.txt', FilesystemIterator::KEY_AS_FILENAME);
$array = iterator_to_array($iterator);
var_dump($array)




filesystems