Ce forum est en partie financé par l’affichage de publicités. Merci de désactiver votre bloqueur de publicités pour nous permettre de continuer à fournir ce service.

[PHP] Ereg () mais pas pour tout

Discussion dans 'Développement web' créé par manolo06, 8 Août 2008.

Modérateurs: Nephou
  1. manolo06

    manolo06 Membre junior

    Inscrit:
    22 Mars 2008
    Messages:
    25
    J'aime reçus:
    0
    Bonjour à tous,
    Je rencontre un problème sur un truc apparement simple mais je m'en sors pas ...
    Je viens donc vous demander de l'aide.

    Voilà, je vais récupérer dans une Bdd l'Id d'un article.
    Cette Id, je m'en sert pour aller chercher une image dans un dossier sur mon serveur.
    Toutes les noms des images sont de la forme :
    id_blabla.jpg

    Je récupère les noms avec un :
    Code (Text):
    $findme = "" . $id_mod . "_";
    if(ereg($findme ,$nomFichier)){... "là j'affiche l'image" ...}
    mon problème est que, par exemple, si $id_mod = 12, je récupère tous les noms des images incluant 12, du style :
    12_sdqjfqsmdkfj.jpg
    mais aussi
    112_qsdqs.jpg
    121_sdflkhjs.jpg
    ....

    Pareil pour, disons, $id_mod = 7, je souhaiterai récupérer le fichier :
    7_sdfdqsfq.jpg
    et pas les :
    17_sdffds.jpg
    71_sdfs.jpg
    172_sdfsd.jpg
    ...

    vous voyez le soucis ?

    Et bien sûr ça m'affiche la mauvaise image ...
    Quelqu'un aurait-il une astuce pour ça ?

    En espérant avoir été clair ... :mouais: ... Gracias.
     
  2. Ouark

    Ouark Membre junior

    Inscrit:
    12 Juin 2008
    Messages:
    37
    J'aime reçus:
    16
    Bonsoir,

    En expression régulière le _ signifie "n'importe quel caractère'. Ce qui explique les 121, 71 etc.
    Il faut utiliser un \ devant, pour spécifier qu'il doit être considérer comme le caractère.

    Il faudrait, plus, faire quelque chose comme ça:
    Code (Text):
    if (preg_match('/^'.$id_mod.'\_(.*)$/', $nomfichier)) {}
     
  3. manolo06

    manolo06 Membre junior

    Inscrit:
    22 Mars 2008
    Messages:
    25
    J'aime reçus:
    0
    Merci Ouark,

    Mon soucis c'est que j'ai pas loin de 1000 fichier avec le _ dans leurs noms ... :siffle:
    je me vois mal les renommer quoiqu'avec un logiciel ou un petit script c'est faisable.
    Je vis de ce pas tester ta méthode....

    Gracias:up:
     
  4. grumff

    grumff Membre d’élite
    Club MacG

    Inscrit:
    9 Novembre 2000
    Messages:
    3 606
    J'aime reçus:
    99
    Faire une expression rationnelle pour ça c'est un peu comme cueillir une fleur au buldozer non ?
    tu peux pas te contenter de quelque chose du genre :
    if(strpos($nomFichier,$id."_")===0)
     
  5. manolo06

    manolo06 Membre junior

    Inscrit:
    22 Mars 2008
    Messages:
    25
    J'aime reçus:
    0
    Salut Ouark,

    En fait je me suis servi de ton astuce pour aller charger ma base de données avec les noms des fichiers ...
    Comme ça c'est nickel ...
    Il y a eu besoin de cette moulinette qu'une fois ...
    Maintenant je passe par Mysql pour checker les images des produits ...
    Beaucoup plus rapide et "Droit au But" comme on dit à Marseille :cool:

    En tout cas merci pour Vos coups de pouce les gars ...
     
  6. Ouark

    Ouark Membre junior

    Inscrit:
    12 Juin 2008
    Messages:
    37
    J'aime reçus:
    16
    A chacun ces citations^^. Par chez moi, ça serait plutôt : "'Qui ne saute pas, n'est pas Lyonnais" :cool:.
     
  7. p4bl0

    p4bl0 Membre d’élite
    Club MacG

    Inscrit:
    12 Juillet 2004
    Messages:
    4 772
    J'aime reçus:
    425
    On a aussi celle là à Marseille, mais en vachement plus classe, vu que y a "Marseillais" à la fin à la place de "Lyonnais" :cool:



    :D
     
Modérateurs: Nephou
Chargement...