Nettoyer fichier avec regex
5 messages
• Page 1 sur 1
- toto2525
- WRInaute occasionnel

- Messages: 349
- Inscription: 20 Sep 2007
Nettoyer fichier avec regex
Salut,
J'essaie de supprimer des chiffres qui sont dans un fichier .xhtml sur mon ordinateur mais j'ai un peu de mal avec la boucle et les regex. Voici comment se trouve ces chiffres dans mon fichier_a_nettoyer.xhtml :
Je souhaite supprimer les chiffres avec l'espace derrière ces chiffres "1925 ", "2210 ", etc... ce qui donnerait une fois nettoyer :
Voici mon code :
Ca marche pas avec ce code, quelqu'un peut-il m'aider un peu ?
D'avance merci.
J'essaie de supprimer des chiffres qui sont dans un fichier .xhtml sur mon ordinateur mais j'ai un peu de mal avec la boucle et les regex. Voici comment se trouve ces chiffres dans mon fichier_a_nettoyer.xhtml :
- Code: Tout sélectionner
<a href="javascript:__doPostBack('ctl00$cphMainContent$ctl295','')">1925 <span style='color:green'>-10%</span>
<a href="javascript:__doPostBack('ctl00$cphMainContent$ctl296','')">2210 <span style='color:green'>-5%</span>
Je souhaite supprimer les chiffres avec l'espace derrière ces chiffres "1925 ", "2210 ", etc... ce qui donnerait une fois nettoyer :
- Code: Tout sélectionner
<a href="javascript:__doPostBack('ctl00$cphMainContent$ctl295','')"><span style='color:green'>-10%</span>
<a href="javascript:__doPostBack('ctl00$cphMainContent$ctl296','')"><span style='color:green'>-5%</span>
Voici mon code :
- Code: Tout sélectionner
$fp = join( '', file( 'http://127.0.0.1/mon-site.com/fichier_a_nettoyer.xhtml' ) );
while(!feof($fp))
{
$toute_ligne = fread($fp, 8192);
$motif = "`<a href=\"javascript:__doPostBack([^<]+)\">[^<]+<span style='color:green'>`";
preg_match_all($motif,$fp,$out);
$toute_ligne = str_replace("".$out[0][0]."","",$toute_ligne);
fwrite($fp,$toute_ligne);
}
fclose($fp);
Ca marche pas avec ce code, quelqu'un peut-il m'aider un peu ?
D'avance merci.
- jcaron
- WRInaute accro

- Messages: 2685
- Inscription: 13 Fév 2004
Re: Nettoyer fichier avec regex
Sans vouloir être méchant, je ne sais pas trop ce qui pourrait marcher dans ton code... Il y a un sale mélange entre descripteurs de fichiers, chaîne de caractères, regex, remplacements, et j'en passe. La regex est aussi assez fantaisiste. Il faudrait peut-être que tu consacres un peu de temps à lire la doc de PHP, ça pourrait aider...
Je n'ai pas l'habitude de coder en PHP, mais j'aurais tendance à dire:
Reste ensuite à savoir ce que tu veux faire une fois la conversion faite (juste afficher, sauvegarder dans un fichier...).
Jacques.
Je n'ai pas l'habitude de coder en PHP, mais j'aurais tendance à dire:
- Code: Tout sélectionner
$file = file_get_contents("nom_du_fichier");
$conversion = preg_replace('/(<a href="javascript:__doPostBack[^>]+>)[^<]+(<span style=.color:green.>)/','$1$2',$file);
echo $conversion;
Reste ensuite à savoir ce que tu veux faire une fois la conversion faite (juste afficher, sauvegarder dans un fichier...).
Jacques.
- toto2525
- WRInaute occasionnel

- Messages: 349
- Inscription: 20 Sep 2007
Re: Nettoyer fichier avec regex
Vraiment MERCI Jacques pour ton aide, tes 3 lignes de codes font exactement ce que je souhaitais faire
Je savais déjà que je n'étais pas un génie en programmation php mais là tu viens de me le prouver, j'ai un peu honte
Encore merci, tu ne peux pas t'imaginer le coup de pouce que tu viens de me donner !
Je savais déjà que je n'étais pas un génie en programmation php mais là tu viens de me le prouver, j'ai un peu honte
Encore merci, tu ne peux pas t'imaginer le coup de pouce que tu viens de me donner !
- toto2525
- WRInaute occasionnel

- Messages: 349
- Inscription: 20 Sep 2007
Re: Nettoyer fichier avec regex
Voilà un nouveau casse tête pour moi (oui je sais je suis pas bien doué
) :
J'ai 3 tableaux dans un fichier html (structure des tableaux <table><tr><td></td><td></td><td></td><td></td></tr></table>, etc...) contenant chacun 20 chiffres, chaque tableau est identique par sa structure mais pas par son contenu, ces tableaux ressemblent à ça :
1er tableau
--| A | B | C | D
1 | 12 21 66 77
2 | 14 87 44 63
3 | 23 10 58 88
4 | 52 54 87 78
5 | 44 55 33 11
Je souhaite lister chaque tableau, comme cela :
A1 => 12
B1 => 21
C1 => 66
D1 => 77
A2 => 14
B2 => 87
etc... jusqu'à la fin de mon troisième tableau
J'ai bidouillé ce code ci-dessous :
Cela fonctionne bien et si j'exécute le code ci-dessous :
J'aurais bien tous mes chiffres les uns sous les autres :
Comment rajouter les (A1, B1, C1, etc...) devant mes chiffres :
J'ai essayé pas mal de solutions mais je bloque !
Merci pour votre aide.
J'ai 3 tableaux dans un fichier html (structure des tableaux <table><tr><td></td><td></td><td></td><td></td></tr></table>, etc...) contenant chacun 20 chiffres, chaque tableau est identique par sa structure mais pas par son contenu, ces tableaux ressemblent à ça :
1er tableau
--| A | B | C | D
1 | 12 21 66 77
2 | 14 87 44 63
3 | 23 10 58 88
4 | 52 54 87 78
5 | 44 55 33 11
Je souhaite lister chaque tableau, comme cela :
A1 => 12
B1 => 21
C1 => 66
D1 => 77
A2 => 14
B2 => 87
etc... jusqu'à la fin de mon troisième tableau
J'ai bidouillé ce code ci-dessous :
- Code: Tout sélectionner
$file = file_get_contents("http://127.0.0.1/mon-site.com/mon-fichier.html");
$motif = '/<td class="mes_chiffres" align="center">(.*?)<\/td>/si';
preg_match_all($motif, $file, $out);
$max = count($out[0]);// les 60 chiffres contenus dans mon fichier html $out[0]
Cela fonctionne bien et si j'exécute le code ci-dessous :
- Code: Tout sélectionner
for($i=0;$i<$max;$i++)
{
echo "".$out[0][$i]."</br>";
}
J'aurais bien tous mes chiffres les uns sous les autres :
- Code: Tout sélectionner
12
21
66
77
14
87
etc...
Comment rajouter les (A1, B1, C1, etc...) devant mes chiffres :
- Code: Tout sélectionner
A1 => 12
B1 => 21
C1 => 66
D1 => 77
A2 => 14
B2 => 87
etc...
J'ai essayé pas mal de solutions mais je bloque !
- Code: Tout sélectionner
$file = file_get_contents("http://127.0.0.1/mon-site.com/mon-fichier.html");
$motif = '/<td class="mes_chiffres" align="center">(.*?)<\/td>/si';
preg_match_all($motif, $file, $out);
$max = count($out[0]);// les 60 chiffres contenus dans mon fichier html
$headers=array('1er tableau','2ième tableau','3ième tableau');
$headers2=array('A','B','C','D');
$headers3=array('1','2','3','4','5');
for($i=0;$i<sizeof($headers);$i++){
for($i2=0;$i2<sizeof($headers2);$i2++){
for($i3=0;$i3<sizeof($headers3);$i3++){
echo "$headers[$i] $headers2[$i2] $headers3[$i3] => $out[0][$max]<br>";
}
}
}
Merci pour votre aide.
- toto2525
- WRInaute occasionnel

- Messages: 349
- Inscription: 20 Sep 2007
Re: Nettoyer fichier avec regex
J'ai trouvé la solution (comme quoi j'ai pas le crâne si vide que ça
) :
- Code: Tout sélectionner
$file = file_get_contents("http://127.0.0.1/mon-site.com/mon-fichier.html");
$motif = '/<td class="mes_chiffres" align="center">(.*?)<\/td>/si';
preg_match_all($motif, $file, $out);
$max = count($out[0]);// les 60 chiffres contenus dans mon fichier html
$headers=array('1er tableau','2ième tableau','3ième tableau');
$headers2=array('A','B','C','D');
$headers3=array('1','2','3','4','5');
$i4=0;
while($i4<$max){
for($i=0;$i<sizeof($headers);$i++){
for($i2=0;$i2<sizeof($headers2);$i2++){
for($i3=0;$i3<sizeof($headers3);$i3++){
echo "$headers[$i] $headers2[$i2] $headers3[$i3] => ".$out[0][$i4]."<br>";
$i4++;
}
}
}
}
5 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Nettoyer une chaine par REGEX
- [Regex] modifier une regex existante
- Outils pour 'nettoyer' un PC
- Nettoyer votre écran
- Cherche à nettoyer ma BDD mysql
- Nettoyer un annuaire de ses 404
- Nettoyer une chaine de caractère
- Nettoyer une base mail
- Nettoyer un numéro de téléphone avant INSERT
- Nettoyer les pages des résultats de Google
- Article sur le fichier .htaccess - 11-01-2003
- Déclarer son fichier sitemap dans le fichier robots.txt - 16-04-2007
- Nouveautés dans l'API Google Analytics (Septembre 2009) - 19-09-2009
- Script de mise en cache des pages (PHP MySQL) - 09-08-2010
- Sortie de GoogleStats v2.01 - 02-03-2003
- Suite de l'article sur le fichier .htaccess : l'URL rewriting - 16-01-2003
- Sitemaps : protocole commun pour Google, Yahoo et Live Search - 16-11-2006
- Comment gérer simplement les sitemaps de plusieurs sites au même endroit - 28-02-2008
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité
