IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

s'arrêter à un endroit précis


Sujet :

Langage PHP

  1. #1
    Fabouney
    Invité(e)
    Par défaut s'arrêter à un endroit précis
    Bonjour à tous et à toute.

    admettons j'ai une chaine comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $content="<div>tes test test test</div></td></tr></table></div>";
    que dois-je ajouté à mon pattern pour que si je prend:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pattern='/^<div>(.*)<\/div>/i';
    pour qu'il ne prenne pas : "</td></tr></table>"
    autrement dit pour qu'il s'arreter à la premiere occurence de </div> trouvée.

    Merci d'avance,
    Cordialement.

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Il faut ajouter l'option de non gourmandise : U (à placer après le délimiteur de fin), puisque comme vous pouvez le constater actuellement les expressions régulières en PHP cherchent une correspondance la plus longue possible. A noter qu'on peut aussi utiliser la syntaxe Perl : .*? au lieu de .* et .+? au lieu de .+ pour marquer ce caractère non gourmand.


    Julp.

  3. #3
    Fabouney
    Invité(e)
    Par défaut
    merci pour ta réponse, mais qd j'utilise l'option /iU il me prend beaucoup trop de chose inutile dans le premier masque que je sauvegarde.

    voici ma chaine :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $content="</tr></table></form><DIV style="padding-top:20px;padding-left:20px;"><table width="600" border="0" cellspacing="0" cellpadding="0"><tr height="14px"><td width="14px"><img src="imgT/puce_rouge.gif" width="14" height="14"></td><td width="580"><DIV class="texterouge" style="padding-left:10px;">le 26/02/2007 à 14:18</DIV></td></tr><tr><td colspan="2"><DIV class="texte" style="padding-top:10px;padding-bottom:20px;">VERONIQUE SANSON&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ALIA SOUZA</DIV></td></tr><tr height="14px"><td width="14px"><img src="imgT/puce_rouge.gif" width="14" height="14"></td><td width="580"><DIV class="texterouge" style="padding-left:10px;">le 26/02/2007 à 14:21</DIV></td></tr><tr><td colspan="2"><DIV class="texte" style="padding-top:10px;padding-bottom:20px;">CHAGRIN_D'AMOUR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CHACUN FAIT CE QUI LUI PLAIT</DIV></td></tr></table></DIV></DIV>";
    je souhait récupérer dans ce cas :

    CHAGRIN_D'AMOUR et CHACUN FAIT CE QUI LUI PLAIT
    avant ceci il y a d'autre masque identique, mais je doit prendre le dernier.
    si vous pouvez proposer quelque chose :s.

    moi j'avais fait ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pattern='/<DIV[ ]?.*>(.+)?(?:&nbsp;){6}(.+)?<\/DIV>/i';
    mais il me retourne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Array
    (
        [0] => </tr></table></form>......</DIV>
        [1] => CHAGRIN_D'AMOUR
        [2] => CHACUN FAIT CE QUI LUI PLAIT</DIV></td></tr></table></DIV>
    )
    Cordialement.

  4. #4
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Je ne sais pas si c'est ton cas, mais il faut faire attention à l'option U utilisée avec les modificateurs de quantificateurs : ça inverse le caractère greedy/ungreedy de "?" !

    Moralité, pour moi en tous cas, jamais de U, que des opérateurs correctement placés.

Discussions similaires

  1. [DOM] Insérer un élément à un endroit précis du DOM
    Par pekka77 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/05/2006, 13h47
  2. ecrire à un endroit précis du disque.
    Par giova_fr dans le forum Windows
    Réponses: 11
    Dernier message: 14/10/2005, 18h46
  3. Afficher une fenetre a un endroit préci de l'ecran
    Par leo5593 dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 09/08/2005, 15h58
  4. [C#] Lecture dans un endroit précis d'un fichier ...
    Par maitrebn dans le forum Windows Forms
    Réponses: 3
    Dernier message: 15/10/2004, 14h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo