preg_match_all + paramettre

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : preg_match_all + paramettre

par Ryle » 30 avr. 2007, 13:50

Modération :
jeanmed, afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé), je l'ai fait pour toi.

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.


Ceci étant dit, elle m'a l'air drolement compliquée ton expression.. t'as vraiment besoin d'autant de parenthèses pour capturer juste la chaine contenue entre <div> et </div> ?

Je ne l'ai pas essayé, mais je pense que ceci devrait faire l'affaire :
$html = "<div class='bleu'>totot</div>"; 
$motif="#<div[^>]*>(.*)<\/div>#Ui"; 

preg_match_all ($motif, $html, $matches); 

preg_match_all + paramettre

par jeanmed » 30 avr. 2007, 13:14

Bonjour

je cherche à extraitre une partie d'un texte et j'utilise preg_match_all.
mais je bloc sur les paramettres de $pattern.

Voici mon code actuel cela fonction bien mais je dois aller + loin :
<?php
$html = "<div>totot</div>";
$motif="`(<(div+)[^>]*>)(.*)(<\/\\2>)`";
preg_match_all ($motif, $html, $matches);
echo $matches[0][0];
?> 
se que je voudrais
<?php
$html = "<div class='bleu'>totot</div>";
//dans le pattern cibler uniquement totot et rien d autre
$motif="`(<(div+)[^>]*>)(.*)(<\/\\2>)`";
preg_match_all ($motif, $html, $matches);
echo $matches[0][0];
//resultat totot
?>