Je n'arrive pas a faire ma regex dans ce tableau

Je n'arrive pas a faire ma regex dans ce tableau - PHP - Programmation

Marsh Posté le 28-02-2005 à 10:25:40    

Bonjour a tous.
 
Quelqu'un pourrait il m'expliquer comment faire pour cette regex dans un tableau.
 
J'ai essayer pleins de methodes mais il se trouve que la regex commence toujours la ou je veut , mais je n'arrive pas a l'arreter , il me met tout jusqu'a la fin du tableau.
 
Je voudrais uniquement l'image situé sur la ligne ou il y a ecrit Bastia et colonne temps.  
 
L'image change assez souvent , mais je voudrais qu'il m'ecrive juste  
 
previ14.png et pas <img src="img/png/picto45x40/previ14.png">
 
attention il sepeut que se ne soit plus previ14.png quand vous regarderais ce post, enfin en regardant le code source vous comprendrez mieux ce que je veut.
 
Merci  
 
 http://www.avalanche-net.com/meteo/detailmetar.php


Message édité par wydook le 28-02-2005 à 11:16:22
Reply

Marsh Posté le 28-02-2005 à 10:25:40   

Reply

Marsh Posté le 28-02-2005 à 11:50:31    

si au moins tu donnais la regex...


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 28-02-2005 à 12:41:47    

bon rigolez pas , mais ca marche pour le reste mes regex , mais la ca ca veut pas.
 
je suis donc obliger de commencer la regex au nom de la ville , car si je veut prendre l'image du temps d'une autre ville il me faudra son nom aussi, et je suis egalement obliger de mettre des point sur le date et l'heure car ca change tout le temps.
 
Voilà le monstre:
 

Code :
  1. <?
  2. $source = file_get_contents('http://www.avalanche-net.com/meteo/detailmetar.php/');
  3. preg_match('/Bastia . Poretta.br........... .......td..td width="70" bgcolor="#FFFFFF" class="paragcentrer"..img src="img.png.picto45x40.(.+)">/',$source,$res1);
  4. echo $res1[1];
  5. ?>


 
 
et voilà ce que ca donne
 
 
 
et moi je veut donc que ca s'arrete pour cet exemple à la premiere ligne et n'avoir que le nom de l'image , c'est a dire a cette heure ci c'est ecrit :  
previ07.png
 
je ferais de meme avec les autres villes


Message édité par wydook le 01-03-2005 à 12:31:51
Reply

Marsh Posté le 28-02-2005 à 18:00:51    

En principe ca devrai être bon ca :

Code :
  1. if(preg_match("!Bastia.+</td>.+picto45x40/(.*)\"></td>!Us",$string,$out)){ echo $out[1]; }
  2. //$string étant la page du truc méteo


Tu n'as qu'a changer le nom de la ville pour pouvoir avoir son image.
Exemple pour Agen

Code :
  1. if(preg_match("!Agen.+</td>.+picto45x40/(.*)\"></td>!Us",$string,$out)){ echo $out[1]; }


C'est fait un peu n'importe comment hein, tu peux améliorer. Puis vérifi bien ce qui est statique de ce qui ne l'est pas.


Message édité par Tempus_Fugit le 28-02-2005 à 19:09:33
Reply

Marsh Posté le 28-02-2005 à 19:04:51    

Autre solution, plus adaptée a ce que tu souhaites

Code :
  1. if(preg_match_all("!parag(white|color)_previ\">(.+)<br>.+</td>.+picto45x40/(.*)\"></td>!iUs",$string,$out))
  2. {
  3. $size=sizeof($out[2]); //On prend la taille du tableau
  4. for($i=0;$i<$size;$i++) //On le parcours pour afficher chaque occurence
  5. {
  6.  echo "<strong>".$out[2][$i]."</strong> image: <strong>".$out[3][$i]."</strong><br />"; //affichage
  7. }
  8. }


Ainsi avec cette méthode, au lieu de repeter ton preg plusieurs fois. Tu le fais une fois et ensuite tu utilises comme tu veux :

Code :
  1. echo $out[2][0]; echo $out[3][0]; // pour afficher le nom de la premiere ville et son image
  2. echo $out[2][1]; echo $out[3][1]; //pour afficher le nom de la second ville et son image

Reply

Marsh Posté le 28-02-2005 à 20:57:02    

j'ai fait ca et ca marche pas , et avec l'autre solution non plus ca veut pas.  
 

Code :
  1. <?
  2. if(preg_match("!Bastia.+</td>.+picto45x40/(.*)\"></td>!Us",http://www.avalanche-net.com/meteo/detailmetar.php,$out)){ echo $out[1]; }
  3. ?>


 

Reply

Marsh Posté le 28-02-2005 à 23:05:48    

wydook a écrit :

j'ai fait ca et ca marche pas , et avec l'autre solution non plus ca veut pas.  
 

Code :
  1. <?
  2. if(preg_match("!Bastia.+</td>.+picto45x40/(.*)\"></td>!Us",http://www.avalanche-net.com/meteo/detailmetar.php,$out)){ echo $out[1]; }
  3. ?>


Ben faudrai aussi suivre ce que j'ai écris...
J'ai jamais dis de mettre l'url, c'est pas comme ca que ca fonctionne.
 
copie colle exactement ca dans un fichier .php :

Code :
  1. <?php
  2. $string=file_get_contents('http://www.avalanche-net.com/meteo/detailmetar.php/');
  3. if(preg_match_all("!parag(white|color)_previ\">(.+)<br>.+</td>.+picto45x40/(.*)\"></td>!iUs",$string,$out))
  4. {
  5. $size=sizeof($out[2]); //On prend la taille du tableau
  6. for($i=0;$i<$size;$i++) //On le parcours pour afficher chaque occurence
  7. {
  8.  echo "<strong>".$out[2][$i]."</strong> image: <strong>".$out[3][$i]."</strong><br />"; //affichage
  9. }
  10. }
  11. ?>


Reply

Marsh Posté le 28-02-2005 à 23:08:12    

Reply

Marsh Posté le 01-03-2005 à 08:30:37    

OULLALA , quel guignol que je suis pfffffffffff
 
En plus je le savait.
 
Je vous remercie . Merci et bonne journée

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed