Bonjour à tous !
Je sèche sur un truc, et j'ai besoin de votre aide : j'exporte de Google AdSense un rapport, sous forme de fichier CSV.
J'importe ce fichier sur mon site web, et un script me le découpe, pour m'isoler chaque ligne et chaque champ de chaque ligne. Et les données semblent se stocker correctement, ou au moins s'affichent correctement.
Mais dans l'une d'entre elles, une chaine de caractère (un domaine de site web) , une expression régulière hyper simple ne fonctionne tout simplement pas ! C'est comme si le mot que je demande ne se trouvait pas dans la chaine, alors que c'est pourtant le cas.
Une fois après avoir récupéré ces données, faut-il les passer dans une fonction pour "cleaner" ou "formater" les caractères ? (qui pourtant, s'affichent déjà correctement). J'ai déjà essayé utf8_encode, utf8_encode ... rien n'y fait.
Je sèche ... merci de votre aide !
Ci-dessous, le code, et un exemple des données :
Les données, un fichier texte formaté CSV, avec un TAB comme limite entre les champs :
et voilà le code PHP qui traite ce fichier :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Site Pages vues Clics Revenus estimés (CHF) www.webcams-suisses.ch 100 10 "1,50" ad.ag-system.ch 200 20 "2,50" www.french-webcams.com 300 30 "3,50" webcams-suisses.ch 400 40 "4,50"
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
18
19
20
21
22
23
24
25
26
27
28
29
30
31 // Lecture du fichier $fd = @fopen($basefilecsv,"r"); $i = 1; // compteur de ligne while (!feof($fd)) { $ligne = fgets($fd, 1024); if ($i>1) { $ligne=str_replace("\t","##",$ligne); list ($adsdata_site,$adsdata_imp,$adsdata_clics,$adsdata_ca) = explode ("##",$ligne); print($i." : ".$adsdata_site." Imp : ".$adsdata_imp." - Clics : ".$adsdata_clics." - CA ".floatval($adsdata_ca)); if (preg_match("#suisse#i",$adsdata_site)) { print(" =>> CH"); $tot_ch_imp=$tot_ch_imp+intval($adsdata_imp); $tot_ch_clics=$tot_ch_clics+$adsdata_clics; $tot_ch_ca=$tot_ch_ca+floatval($adsdata_ca); } print("<br>"); } $i++; } fclose($fd);
Partager