begin process at 2012 05 31 01:33:50
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

AU SECOURS !!!

 > 

Problème avec preg_match_all


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème avec preg_match_all

mardi 12 juillet 2005 à 11:28:37 | Problème avec preg_match_all

Bountard

   Salut à tous,
j'ai un petit problème avec l'utilisation de preg_match_all.
Pour faire plus simple voila mon bout de code d'essai :
 <?php
$html = '<tr> <td> un </td> <td> deux </td> </tr> <tr> <td> un bis </td> </tr>';
preg_match_all("/(<td>)(.*)(<\/td>)/", $html, $matches, PREG_SET_ORDER);
$compteur = 0;
foreach ($matches as $val) {
    $compteur = $compteur+1;
    echo 'Matched '. $compteur. ' : ' . $val[0] . '</br>';
}
echo 'Compteur = '.$compteur;
?>
Il m'affiche : Matched 1 : un deux un bis
Puis : Compteur = 1

Donc je me rends compte sans trop de mal en explorant le code source de la page de retour d'ailleurs, que preg_match_all cherche dans la chaîne de caractère le dernier et non le premier </td> pour délimiter mes recherches comme je le souhaiterais.
Comment faire pour compter le nombre de <td> ?
Merci pour votre aide je galère depuis quelques heures dessus.

mardi 12 juillet 2005 à 11:39:14 | Re : Problème avec preg_match_all

malalam

Administrateur CodeS-SourceS
Si tu dois te limiter a des <td> </td>, preg_match n'est pas forcement le plus pratique.
strpos () prend un offset : il te trouvera le 1er <td>, et te retourne sa position. Tu peux l'appeler recursivement avec la position comme offset, popur poursuivre ta recherche, et ainsi de suite jusqu'a la fin : tu auras ton nombre de <td>.
Apres j'ai pas bien compris ce que tu voulais faire exactement, alors...

mardi 12 juillet 2005 à 11:44:25 | Re : Problème avec preg_match_all

Bountard

Je veux compter le nombre de '<td>' dans ma chaîne de caractère, plus exactement le nombre de '<td> ..... </td>'.
mardi 12 juillet 2005 à 12:05:32 | Re : Problème avec preg_match_all

Bountard

Par contre un petit problème avec strpos(), je ne sais quelle condition mettre pour arrêter la récurrence.

Par exemple un code du type :

$pos = 0;
$compteur = 0;
while ( ......) {
$pos = strpos($html,'<td>',$pos');
$compteur = compteur +1 ;
}
Si quelqu'un pouvait m'aider pour la condition d'arrêt, merci.
mardi 12 juillet 2005 à 12:09:55 | Re : Problème avec preg_match_all

malalam

Administrateur CodeS-SourceS

false, tu l'arretes quand il renvoie false.

mardi 12 juillet 2005 à 12:10:28 | Re : Problème avec preg_match_all

malalam

Administrateur CodeS-SourceS
attention pas 0, hein, utilise l'operateur de comparaison sur le type : === false
mardi 12 juillet 2005 à 12:10:35 | Re : Problème avec preg_match_all

Bountard

J'ai résolu mon problème comme cela :

$pos = 1;
$compteur = 0;
while ($pos >= 1) {
$pos = strpos($html, '<td>', $pos+4);
if($pos >= 1) { $compteur = $compteur + 1; }
}
?>



mardi 12 juillet 2005 à 12:11:26 | Re : Problème avec preg_match_all

malalam

Administrateur CodeS-SourceS
Mais en effet sio tui veux tester le nombre d'occurences de <td>...</td>, le mieux est une expression reguliere, et donc ton preg_match_all (je  ne l'ai pas testee encore, ton code, pas eu le temps desole)
mardi 12 juillet 2005 à 12:14:34 | Re : Problème avec preg_match_all

Bountard

Bon j'ai mon compteur, par contre, je ne sais toujours pas comment faire marcher preg_match_all comme je le souhaite.
J'aimerais qu'il tronque la chaîne a chaque couple <td> </td>, et non au premier <td> et le dernier </td> de la chaîne.



Cette discussion est classée dans : problème, compteur, preg, match, all


Répondre à ce message

Sujets en rapport avec ce message

Preg_match_all , soucis d'utilisation [ par Bountard ] Bonjour à tous, j'ai un problème depuis quelques jours avec preg_match_all. Voila mon code : $html = ' un deux un bis Problème avec preg_match_all [ par nisaloncaje ] BonjourJe comptais utiliser la fonction preg_match_all afin d'extraire d'une chaine caractère les sous chaines contenues entre 2 balises ([yt] et  [/y preg_match_all [ par shefiu ] Bonjour,Je voulais utiliser un preg_match_all pour recuperer tous les liens sur une page web. Ensuite j'affiche le resultat et je me rend compte que q preg_match_all tous les caractères [ par mike1310 ] Bonjour à tous,j'ai encore un problème avec ce satané preg_match_all ... J'ai une chaine de caractère comme ceci :blablablabalbal du texte et encore d problème preg_match ou autre [ par mike1310 ] Bonjour à tous,je suis en train de me créer un moteur de template simple et j'aimerais faire, à l'aide d'un preg_match ou autre, récupérer dans ma pag preg_match_all [ par Kloyd ] Bonjour j'aimerais recuperer à l'aide d'un Preg match all hors du code ci-dessous: [code=html] <img preg_match_all avec bracket [ ] [ par lord1366 ] Bonjour, j'ai besoin d'extraire la partie de texte contenu dans un texte similaire à ceci : Cher [Prénom] [NomDeFamille] , Nous vous invitons au séj preg_match_all comment faire ? [ par Steph115 ] Bonjour,Je ne suis pas très a l'aise dans les preg_match_all et je bloque un peu sur cette idée :J'ai une chaîne définit comme cela :!view_client:*,vi Masque pour preg_match() ... Aidez-moi ! [ par LocalStone ] Alors, j'expose le problème : J'ai 1 fichier texte qui contient des ligne du style : 0004 - Chu Chu Rocket (J)Donc le masque approprié pour sépare Compteur par ip [ par stanilou ] Salut,Donc mon post conserne le compteur par ip !En fait moi je lis l'ip des visteurs... Si elle deja dans mon fichier cotenant toute les ip, je ne fa


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,624 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales