begin process at 2012 05 31 10:48:18
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Débutant(e)

 > 

traitement de fichier en php


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

traitement de fichier en php

jeudi 3 janvier 2008 à 16:28:39 | traitement de fichier en php

daris

Bonjour,
 J'ai un fichier sous ce format
14366,1,56.9,704,0.411326   
14366,2,56.2,703,0.0322821   
14366,3,57.5,688,0.181508   
14366,4,57.6,687,0.599771   
14366,5,59.1,669,0.274231   
14366,6,60.1,657,0.173746
*
14360,1,56.9,704,0.411326   
14360,2,56.2,703,0.0322821   
14360,3,57.5,688,0.181508   
14360,4,57.6,687,0.599771   
14360,5,59.1,669,0.274231   
14360,6,60.1,657,0.173746*   
14359,1,56.9,704,0.411326   
14359,2,56.2,703,0.0322821   
14359,3,57.5,688,0.181508   
14359,4,57.6,687,0.599771   
14359,5,59.1,669,0.274231   
14359,6,60.1,657,0.173746*
14372,1,56.9,704,0.411326   
14372,2,56.2,703,0.0322821   
14372,3,57.5,688,0.181508   
14372,4,57.6,687,0.599771   
14372,5,59.1,669,0.274231   
14372,6,60.1,657,0.173746
deux type de separateur ,(virgule) et *(etoile)

Pour traiter ce ffichier avec du php, je veux dans un premier temps  separer les donneés en bloc grace au separateur (*)
Ensuite traiter chaque bloc en prenant en compte le separateur (,)

mais je suis bloquée au niveau de la premiere étape=> separation en bloc /separateur *


Voici mon script:
$ouvre = fopen ($uploadfile,"r"); // ouverture fichier en lecture "r"
                                while (!feof ($ouvre))// tant que pas en fin de fichier
                                {
                                   
                                    $lecture = fgets($ouvre, 4096); // stockage dans $lecture
                                    $donnee=explode("*",$lecture);  // parsing des données basé sur "*")
                                    $combien=count($donnee)-1; // nbre d'éléments séparés par "*"
                                    echo "<b>Ce fichier contient ",$combien," données : </b><br><br>";
                                   
                                    for ($i=0;$i<=$combien;$i++)
                                        {
                                    echo $donnee[$i],"<br>";  // affichage des données
                                        }
                               
                                }

ce script ne me permet pas de faire ce que j'ai decris plus haut car dans un bloc il ya plusieurs lignes.
Si vous avez une idée pour m'aider .Merci d'avance

jeudi 3 janvier 2008 à 17:13:45 | Re : traitement de fichier en php

malik7934

PAS TESTE!

$filename = 'le nom de ton fichier';
$handle = fopen($filename,"rb");
$content = fread($handle, filesize($filename));
fclose($handle);

$split = explode('*',$content);
echo 'Ce fichier contient '.count($split).' éléments : <br /><br />';
for ($i=0;$i<count($split);$i++)
    echo 'Block '.$i.' : '.$split[$i].'<br />';

*****
noisy communication - wherever, be everywhere!

jeudi 3 janvier 2008 à 23:13:03 | Re : traitement de fichier en php

yoman64

Membre Club
Salut,

quelques petites corrections:

$content=
file_get_contents($uploadfile);  // Beaucoup plus rapide que fread (confirmé par la doc php)
$split = explode('*',$content);
echo 'Ce fichier contient '.count($split).' éléments séparé par une étoile: <br /><br />';
$nbr=
count($split); // Faut jamais mettre un count dans une boucle
for ($i=0;$i<$nbr;$i++)
    echo 'Block '.$i.' : '.$split[$i].'<br />';


-------------------
Vous cherchez un hebergement Php/MySQL Gratuit et sans publicités ??
Et bien c'est la : www.e3b.org  
vendredi 4 janvier 2008 à 08:53:17 | Re : traitement de fichier en php

daris

Merci pour vos aides , ca marche bien ce script et ca fait exactement ce que je voulais  mais malheureusement je doit proceder autrement maintenant . c'est dire que je n'ai plus de séparateur * dans mon fichier .le delimiteur de chaque block doit être la premiere colonne du fichier csv qui est un identifiant.
pour chaque identifiant je doit lire le block et inserer les resultat dans ma base ansi de suite. si vous avez une idée .Merci de ne pas hesiter
vendredi 4 janvier 2008 à 10:42:41 | Re : traitement de fichier en php

daris

Je rexplique mon probleme :
j'ai ce fichier dont la première colonne correspon a un identifiant.:
14366,1,56.9,704,0.411326   
14366,2,56.2,703,0.0322821   
14366,3,57.5,688,0.181508   
14366,4,57.6,687,0.599771   
14366,5,59.1,669,0.274231   
14366,6,60.1,657,0.173746

14360,1,56.9,704,0.411326   
14360,2,56.2,703,0.0322821   
14360,3,57.5,688,0.181508   
14360,4,57.6,687,0.599771   
14360,5,59.1,669,0.274231   
14360,6,60.1,657,0.173746 
14359,1,56.9,704,0.411326   
14359,2,56.2,703,0.0322821   
14359,3,57.5,688,0.181508   
14359,4,57.6,687,0.599771   
14359,5,59.1,669,0.274231   
14359,6,60.1,657,0.173746
14372,1,56.9,704,0.411326   
14372,2,56.2,703,0.0322821   
14372,3,57.5,688,0.181508   
14372,4,57.6,687,0.599771   
14372,5,59.1,669,0.274231   
14372,6,60.1,657,0.173746
Pour chaque identifiant je doit lire toutes les ligne et les  rajouter dans un tableau que je vais traiter apres pour inserer dans ma base.
J'ai essaye de mettre en place le script  ci dessous , peut être pas trop coherent car par manque d'expérience je ne suis pas convaincu de mon algorithme. merci si vous pouvez m'eclaicir.

$row = 1; // initialisation de la 1ère ligne du fichier uploadé
$fp= fopen ($uploadfile,"r"); // ouverture fichier en lecture "r"
$identifiant =null;    
while ($data = fgets ($fp, 4086)){
         //$content= file_get_contents($uploadfile);                                              list($no_analyse_B_ARISA,$numero_de_bande,$intensite_de_la_bande,$taille_de_la_bande,$distance_de_migration) = explode(",", $data);
$identifiant=$no_analyse_B_ARISA;                
 echo $identifiant;
 $num = count ($data);
            for($i=0; $i < $num; $i++){
                          if($identifiant == $no_analyse_B_ARISA){
                                    echo "je suis à la ligne numero ".$row."du fichier<br>";   
                           }else{
                                    echo "Attention l'dentifiant a changer!<br>";
                            }
                                    
                }
$row++;   
 print_r($data);
 fclose($fp);
vendredi 4 janvier 2008 à 10:54:30 | Re : traitement de fichier en php

malik7934

yoman64 où est-il dit que file_get_contents est plus rapide? Ca m'intéresse! Je n'ai pas trouvé sur http://fr.php.net/file_get_contents...

*****
noisy communication - wherever, be everywhere!

vendredi 4 janvier 2008 à 15:36:38 | Re : traitement de fichier en php

yoman64

Membre Club
Salut,
C'est dans la page de la doc de fread : http://ca.php.net/manual/fr/function.fread.php

Note: Si vous voulez lire le contenu d'un fichier dans une chaîne de caractères, utilisez plutôt file_get_contents() qui est bien plus rapide que le code ci-dessus.


Mais je suggère ce changement surtout parce que je crois que ça fait plus propre de remplacer 3 lignes par une seule fonction qui est faite pour ça :).

-------------------
Vous cherchez un hebergement Php/MySQL Gratuit et sans publicités ??
Et bien c'est la : www.e3b.org  
mardi 6 octobre 2009 à 20:04:31 | Re : traitement de fichier en php

seybou

bonsoir,moi j'ai plutot un repertoire dans lequel se trouve plusieurs repertoires dont
1.je doit recuperer le nom de chacun des ces répertoires dans un parametre;
2.pour chaque repertoire je doit rechercher, identifier et compter les fichiers de meme type: dont les noms ont en commun une chaine xxxx;
3.ouvrir chaque fichier
4.Identifier et lecture des informations utiles (ici en bleu) avec creation d'une table dont les colonnes sont en rouges:
Name of BSC : AGA
begin date and time : 2009-07-17 11:00
end date and time : 2009-07-17 12:00
LINK_ID C153A C153B C251 C252 C253 C254 C255 C256 C257 C258
16 0 1 0 165 2324 0 0 2353 0 0
144 0 0 0 198 2323 0 0 2313 0 0
272 0 0 0 202 2326 0 0 2309 0 0


5.inserer pour chaque ligne les colonnes suivantes jusqu'à rencontrer une ligne vide:
Name of BSC begin date and time end date and time LINK_ID C153A ... C256

6.sortir du fichier si rencontre ligne vide et ouvrir le prochain fichier. et faire le processus en ajoutant les nouvelles valeurs pour les memes colonnes.

Merci de m'aider à faire un code PHP/Mysql de cet algorithme.
merci d'avance !


Cette discussion est classée dans : fichier, lecture, php, bloc, separateur


Répondre à ce message

Sujets en rapport avec ce message

lecture et ecriture d'un fichier text avec php à travert des formulaires [ par cacoucatatonique ] salut à tous, je suis à la recherche d'un moin de generer des fichiers texts afin de sauvegarder des paragraphes de text, voir de les modifiers et mem FIFO ecriture/lecture en php [ par suleyman ] bonjour jaimerai savoir comment faire pour Crée un fichier FIFO, ensuite ecrire et lire dans le fichier, en PHP ! tres urgent! je vous remercie davanc Modification / lecture fichier par PHP et FTP [ par Mickael33480 ] Bonjours à tous / toutes Je viens vous voir car j'ai une petite question à vous pausez : J'ai deux serveurs 1 Web ou il y as le script et un de fichie PHP - Lecture fichier XML [ par conan76 ] Bonjour,Dans le but d'importer des données d'une structure (ASP.Net/Intranet) à une autre (PHP/Internet)  afin de les exposer à la clientèle, le choix lecture et traitement d'un fichier log en php [ par fillius ] bonjour tout le mondeje suis entrain de faire un stage et je travail sur une application de gestion de fichier log qui doit être fait completement en Envois mailing en htm via php [ par Alpha911 ] Bonjour, je viens de trouver un script qui ressemble à ce que je souhaite à savoir l'envois d'un fichier htm par mail sans etre en piece jointe dans execution fichier php xamm (mac os) [ par jordi906 ] Bonjour à tous ;) ! Je suis débutant en php et novice dans le monde des macs ...J'ai installé xampp , démarré le serveur , mais je n'arrive pas à exéc connaître le nom du fichier appelant l'execution d'un autre fichier php [ par sagat06 ] Bonjour à tous.Voilà, à des fins de plus grande sécurité, j'amerais savoir le nom du fichier appelant un autre fichier php.Explication par l'exemple:1 Probleme FOPEN [ par telechargement111 ] Salut a tousj vous explique mon programe et je vous dis le probleme aprèsjai créer un module d'inscription, et après chaque inscription le module crée Comment mettre en forme un fichier excel à partir de php [ par anthony428 ] Bonjour, j'utilise la source suivante : http://www.phpcs.com/codes/EXPORTER-EXTRAIT-VOTRE-BASE-SELON-SELECTION-VERS-EXCEL_27836.aspx Elle me permet


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,733 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales