bonjour,
dans un prog je recupere le contenu d'un fichier ds un variable, se variable est passer a un sous prog.
comment je peux lir le contenu ligne par ligne de se variable?
merci.
bonjour,
dans un prog je recupere le contenu d'un fichier ds un variable, se variable est passer a un sous prog.
comment je peux lir le contenu ligne par ligne de se variable?
merci.
montre nous ton script!!!
je recupere le contenue d'une page web. ce dernier je le passe a la fonction ci_desous:
mais il consider le contenu de la variable passer comme un seul string.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 sub get_links_banniers{ my $ligne = shift(@_); print "http://rextopia.com$1\n" if( $ligne =~ m/<a href="(\/publishers\/display_affiliate_banner_stats.html\?program_id=.*)">(.*)<\/a>/ ) ; }
le code complet!!!!!!!!!!!!!!!
comment pas tu l'info à ta fonction!!!
je passe la var comme ça:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 #!/usr/bin/perl -w -i.bak use strict; use WWW::Mechanize; use LWP::Debug qw(+); sub get_links_banniers{ my $ligne = shift(@_); print "http://rextopia.com$1\n" if( $ligne =~ m/<a href="(\/publishers\/display_affiliate_banner_stats.html\?program_id=.*)">(.*)<\/a>/ ) ; } my $m = WWW::Mechanize->new(); $m->get($url); get_links_banniers($m->content);
verifie ce qu'il y a dansEnvoyé par rootdaouden faisant
Code : Sélectionner tout - Visualiser dans une fenêtre à part $m->content
si c'est ok,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 my $mon_texte = $m->content; print $mon_texte;
alors tu fais
Code : Sélectionner tout - Visualiser dans une fenêtre à part get_links_banniers($mon_texte);
Pourquoi voudrais-tu lire la variable ligne à ligne ? Ca n'a pratiquement aucun intérêt dans ton cas.
--
Jedaï
j'ai voulais eviter le faite de recuperer le contenu ds un fichier puis le consulter pour recuperer les liens.
tu dois avoir de \n dans ta variable, mais c'est le but de ton script?
j'ai pas compris djebril.
mais mon but c'est de recuperer quelque liens a partir d'une page web. puis consulter un par un ces liens.
au fait, t'as quoi comme reponse???
des message d'erreur ou non, sinon ça peu venir de ta regex!![/code]
je recupere une seul ligne:
.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 http://rextopia.com/publishers/display_affiliate_banner_stats.html?program_id=608&offset=0&start_date=2005-08-31&end_date=2005-08-31
mais je pense qu'il y a un probleme ds l'expression regulier.
je dois verifier le syntax.
bon je pense que tu te melange les pedales.
recupere un fichier html (donc avec le \n)
Code : Sélectionner tout - Visualiser dans une fenêtre à part $m->content
on va faire un script plus long et tu comprendras:
fais ceci :
affiche nous le contenu de fichier test.txt
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 my $answer = $r->content; open (RECUP, ">test.txt") || die "impossible de creer le fichie $!"; print RECUP $answer; close (RECUP);
Non, il veut dire qu'il n'obtient qu'un seul résultat avec sa regex, ce qui est assez compréhensible puisqu'il n'utilise pas /g...
--
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 sub get_links_banniers{ my $ligne = shift(@_); print "http://rextopia.com$1\n" while ( $ligne =~ m/<a href="(\/publishers\/display_affiliate_banner_stats.html\?program_id=.*)">(.*)<\/a>/g ) ; }
Jedaï
+1
toutes ces lignes pour un g
merci les amis,
j'ai resolut le probleme.
je sais que c'est pas tres propre, si vous avez une sugestion je suis a l'ecoute, par ce que je suis assez experimenter en perl.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 sub get_links_banniers{ my $ligne = $_[0]; while( $ligne =~ m/<a href="(\/publishers\/display_affiliate_banner_stats.html\?program_id=.*)">(.*)<\/a>/ ) { $ligne =~ s/<a href="(\/publishers\/display_affiliate_banner_stats.html\?program_id=.*)">(.*)<\/a>//; print "http://rextopia.com$1\n"; } }
J'imagine que tu voulais écrire inexpérimenté, non ?Envoyé par rootdaoud
Relis mon message quelque post plus haut pour une bonne solution (la tienne donne le résultat mais elle est assez lourde et innefficiente).
--
Jedaï
oui c'est ca amigo inexpérimenté bien sur .
merci
oui jedai,
ton code marche tres bien , je m'exuse d'avoir dis qu'il ne marche pas par ce que j'ai pas remarquer le while.
merci :o
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager