2009-11-29 4 views
0

J'utilise le code ci-dessous pour créer un tableau d'images. J'aimerais pouvoir pas ajouter des images avec -c.jpg dans le nom de fichier. Comment puis-je faire ceci?Comment supprimer toutes les images d'un tableau avec un nom de fichier spécifique

<?php 
$jsarray = array(); 
$iterator = new DirectoryIterator(dirname("public/images/portfolio/all/")); 
foreach ($iterator as $fileinfo) { 
    if ($fileinfo->isFile()) { 
     //filtering to exclude the color images 
     $jsarray[] = "'" . $fileinfo->getFilename() . "'"; 
    } 
} 
$jsstring = implode(",", $jsarray); 
?> 

J'utilise PHP5.

Répondre

0
$jsarray = array(); 
$iterator = new DirectoryIterator(dirname("public/images/portfolio/all/")); 

foreach ($iterator as $fileinfo) { 
    if ($fileinfo->isFile() && !preg_match('/-c\.jpg$/', $fileinfo->getFilename())) { 
     $jsarray[] = "'" . $fileinfo->getFilename() . "'"; 
    } 
} 

$jsstring = implode(",", $jsarray); 

C'est tout.

+0

Merci compagnon. Parfait. – Andy

0
if(strpos($fileinfo->getFilename(), "-c.jpg") === false) { 
    $jsarray[] = "'" . $fileinfo->getFilename() . "'"; 
} 

Essayez-le. strpos vous indique la position de la chaîne de recherche si elle est là, et false si ce n'est pas le cas.

+0

Hmm, le manuel dit que les strpos retournent FAUX lorsque l'aiguille n'est pas trouvée. Vous devriez utiliser '=== FALSE' alors. Je préférerais la solution preg_match, car les noms de fichier * ending * avec -c.jpg devraient être exclus ici. – mkluwe

+0

Il semble que vous avez raison. Je jure que je me souviens l'avoir utilisé avec -1 dans les années passées, mais c'était l'ère PHP3. En tout cas, merci pour la capture, et la réponse a été éditée pour éviter de tromper quiconque dans le futur. – Toji

Questions connexes