Expression Reg. Si ma chaine contient "tmp"

Résolu
atomik29 Messages postés 87 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 17 décembre 2008 - 19 juin 2007 à 09:54
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 - 25 juin 2007 à 18:43
Bonjour a tous.

Voila je cherche à supprimer des fichiers si ils contiennent une certaine chaine de caractere.
Je pense que l'utilisation d'expression reguliere est la meilleure solution mais si vous en avez d'autres je suis preneur.

Je recupere des noms de fichiers contenu dans un repertoire, est je voudrai tester pour chaque nom, si la chaine 'tmp_' est contenu dedans.
Si c'est le cas je supprime le fichier.

J'attend vos conseils.
Merci d'avance.

Atomik29

7 réponses

atomik29 Messages postés 87 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 17 décembre 2008 1
19 juin 2007 à 11:01
Merci coucou747 et J_G

a+

Atomik29
3
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 9
19 juin 2007 à 11:21
Ouaich... Je me suis planté dans l'ordre des paramètres... Mais tu aurais pu (du) vérifier l'utilisation de la fonction dans la doc PHP (www.php.net).


Bref, il fallait lire :
if ( strpos($filename, 'tmp_') !== false ) // 'tmp_' trouvé
else // 'tmp_' absent

!!! ET ATTENTION !!!
J'ai bien écrit '!==' et non '!=' La dfférence est importante...
(de même n'est pas l'opérateur)
La encore la doc te dira pourquoi...

A+
3
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 43
25 juin 2007 à 18:43
Salut

sinon, tu pourrais au moins valider la reponse de ceux qui t'on aides, et pas la tienne...

<hr />une recherche sur exalead vous aurait peut-etre evite de poser cette question

In a dream, I saw me, drop dead...
U were there, U cried...
It was just a dream,
if I die, U won't cry, maybe, U'll be happy
3
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 43
19 juin 2007 à 10:32
Salut

faut le faire avec strpos

cherche dans la doc
opendir
readdir
is_file
file_get_contents
unlink

<hr />une recherche sur exalead vous aurait peut-etre evite de poser cette question

In a dream, I saw me, drop dead...
U were there, U cried...
It was just a dream,
if I die, U won't cry, maybe, U'll be happy
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 9
19 juin 2007 à 10:32
Salut,


L'utilisation des expression régulières me semble un peu lourde pour un simple test sur 'tmp_'...

Le plus efficace serait : strpos()

exemple:
if ( strpos('tmp_',$filename) !== false ) // 'tmp_' trouvé
else // 'tmp_' absent

A+
0
atomik29 Messages postés 87 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 17 décembre 2008 1
19 juin 2007 à 10:53
en faite j'ai 2 possibilités dans le nom des fichiers (images):
soit la chaine tmp est au debut : tmp_27315_1001_2.jpg
soit apres mini : mini_tmp_27315_1001_3.jpg

J_G j'ai essaye ton code mais ca ne fonctionne pas....(jdois pas etre bien reveille)...

while($manu_ids = mysql_fetch_array($manu_ids_query))
{
    $links_manufacturer_id=$manu_ids['links_manufacturer_id'];
   
    if ($links_manufacturer_id!='0')
    {
        $rep=opendir('../../office/a'.$links_manufacturer_id.'/catalog/images/banners/');
        while ($images = readdir($rep))
        {
           if ( strpos('tmp_',$images) != false )
                  echo "trouve";
              else
                echo "rien";
        }
        closedir($rep);
    }   
}
Je ne recupere rien, alors qu'il devrait me trouve deux images...

Est-ce que l'utilisation de substr ne serait pas mieux ????

Atomik29
0
atomik29 Messages postés 87 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 17 décembre 2008 1
19 juin 2007 à 10:59
J'ai utilisé substr pout tester et ca fonctione bien ....

if ( substr($images,0,4)=='tmp_' || (substr($images,0,9)=='mini_tmp_') )
    echo "OK";
else
    echo "rien";

Je ne pense pas que ce soit la meilleure solution mais bon ...

Atomik29
0