Il s'agit de la partie de départ de mon code pour répertorier les fichiers d'un répertoire: J'essaie de répertorier tous les fichiers d'un répertoire sans répertorager les sous-dossiers. Le code fonctionne, mais montrant à la fois des fichiers et des dossiers. J'ai ajouté ! Is_dir ($ fichier) code> Comme vous le voyez dans mon code ci-dessus, mais les résultats sont toujours identiques. P> p>
6 Réponses :
Il suffit d'utiliser Exemple: P> is_file code>. foreach($files as $file)
{
if( is_file($file) )
{
// Something
}
}
Je pourrais, mais pour mon exemple spécifique, je voulais savoir pourquoi is_dir () ne fonctionnait pas. Merci +1
Cela devrait être comme ça, je pense:
$files = scandir($dir);
foreach($files as $file)
{
if(is_file($dir.$file)){
....
Depuis '.' et '..' sont des répertoires, "$ dossier! = '.' && $ file! = '..' && "est redondant dans l'expression. Et le séparateur de direction de la trail ne fait aucune différence.
Quelle douleur pour quelque chose d'aussi semblable simple! Rien n'a fonctionné pour moi ... Pour obtenir un résultat, j'ai supposé que le nom du fichier avait une extension qu'il doit dans mon cas.
if ($handle = opendir($opendir)) {
while (false !== ($entry = readdir($handle))) {
$pos = strpos( $entry, '.' );
if ($entry != "." && $entry != ".." && is_numeric($pos) ) {
Eh bien, vous avez signalé cela, mais toujours, il y a des fichiers allai tous les jours sans points dans leurs noms.
Ceci scannera les fichiers puis vérifier si. ou .. est dans un tableau. Puis appuyez sur les fichiers à l'exclusion. et .. dans les nouveaux fichiers [] tableau.
Essayez ceci: p>
Bonjour et bienvenue Tostackoverflow. Veuillez ajouter quelques explications au code.
Utilisez la constante code> répertoire code> pour ajouter le fichier sur son chemin de répertoire aussi.
function getFileNames($directoryPath) {
$fileNames = [];
$contents = scandir($directoryPath);
foreach($contents as $content) {
if(is_file($directoryPath . DIRECTORY_SEPARATOR . $content)) {
array_push($fileNames, $content);
}
}
return $fileNames;
}
Il s'agit d'une doublure rapide et simple pour répertorier uniquement les fichiers. Étant donné que l'utilisateur souhaite répertorier uniquement les fichiers, il n'est pas nécessaire de numériser le répertoire et de renvoyer tout le contenu et d'exclure les répertoires. Obtenez simplement les fichiers de tout type ou de type spécifique. Utilisez * pour renvoyer tous les fichiers indépendamment de l'extension ou obtenir des fichiers avec une extension spécifique en remplaçant le * avec l'extension.
Obtenez tous les fichiers quelle que soit l'extension: P>
$files = fileList($configData->includesDirectory, '');