Comment récupérer du texte entre des balises html ?

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 : Comment récupérer du texte entre des balises html ?

par bravegars » 10 avr. 2007, 10:56

Bon ça ne fonctionne toujours pas. Avec aucune des deux expressions. Ou bien c'est moi qui ne sait pas récupérer les variables comme il faut. Ce qui est possible car je ne suis pas un super pro de php. Voici comment je récupère mes variables :
<?php
if(file_exists($fichier)){  
$lire=fopen($fichier, "r");  
while(!feof($lire)){  
$ligne=fgets($lire, 1024);  
preg_match_all('#<font[^>]*>.*</font>#i',$ligne,$out);  
foreach($out as $val){  
$var1=$val[0];  
$var2=$val[1];  
$var3=$val[2];  
  }  
 }  
} 

// ou 

if(file_exists($fichier)){  
$ligne=file_get_contents($fichier);  
preg_match_all('`<font[^>]*>([^<]+)</font>`i',$ligne,$out); 
$nombre=count($out[0]); 
for($j=0; $j<$nombre; $j++){ 
$tableau[].=$out[0][$j]; 
 } 
$var1=$tableau[0]; 
$var2=$tableau[1]; 
$var3=$tableau[2]; 
}
?>
Ce que je comprend pas c'est que dans un cas comme dans l'autre si je fais des echos, cela m'affiche les bonnes valeurs
Jack
Annie
Philippe

Et si je remplace les variables par les mots ça marche

$var1="Jack";
$var2="Annie";
$var3="Philippe";

Donc il y a bien un probleme avec mon code plus haut. Merci pour vôtre aide.

par Expreg » 07 avr. 2007, 10:33

Tiens essaies ça :
<?php
$ton_fichier='pouet.html';
$fichier=file_get_contents($ton_fichier);
preg_match_all('`<font[^>]*>([^<]+)</font>`i',$fichier,$out);

echo '<pre>',print_r($out[1],true),'</pre>';

?>

Comment récupérer du texte entre des balises html ?

par bravegars » 07 avr. 2007, 10:25

Salut,

Je n'arrive pas à récupérer du texte entre les balises <font> dans un fichier. Le fichier est de la forme suivante.

<font color='#00FF56'>Tartenpion</font><font color='#54A2EC'>Toto</font>

J'ai essayé comme ceci :
if(file_exists($fichier)){
$lire=fopen($fichier, "r");
while(!feof($lire)){
$ligne=fgets($lire, 1024);
preg_match_all('#<font[^>]*>.*</font>#i',$ligne,$pseudos);
foreach($pseudos as $val){
$var1=$val[0];
$var2=$val[1];
$var3=$val[2];
}
}
}
Pourtant lorsque je fais des echo, les variables var1, var2, et var3 s'affichent bien. Mais lorsque je continue le script, celui ci ne m'efface pas les variables que je veux effacer. La suite du script est bonne il n'y a pas d'erreur. Donc l'erreur provient du bout de code que j'expose ici. :cry:

Je sais qu'il existe fgetss, mais cela ne convient pas pour ce que je veux faire.