Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/01/2007, 11h16   #1
Membre confirmé
 
Inscription : mars 2004
Messages : 1 187
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 187
Points : 233
Points : 233
Par défaut [CSV] Taille d’une ligne d’un FICHIER

Bonjour,

Je tente d’extraire des données d’un fichier csv avec le code suivant :


Code :
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
 
 
$file = "lldiffusion.csv";
$taille = 1024;
$delimiteur = ";";
/* ouverture en lecture */
 
 
 
 /* On ouvre le fichier à importer en lecture seulement */
 if (file_exists($file))
 {
      $fp = fopen($file,"r"); 
       /* extraction d'une ligne */
    while ($ligne = fgetcsv($fp, $taille, $delimiteur))
    { /* Tant qu'on n'atteint pas la fin du fichier */ 
       /* On récupère les champs séparés par ; dans liste*/
       // $liste = explode( ";",$ligne);  
       $ligne = str_replace("'","\'",$ligne); // echappement devant les simples quotes
	   $ligne = str_replace('/','\/',$ligne);
       // $liste = str_replace('"','\"',$liste); // echappement devant les double quotes
	   // on compte le nombre de champs séparés par un ;
 
	  //  $num = count($ligne);
	  //  echo $ligne[6].'<br>';;
 
 
			/* On assigne les variables */ 
			$id = $ligne[0];
			$marque = $ligne[1]; 
			$designation = $ligne[2];
			$univers = $ligne[3]; 
			$categorie = $ligne[4];
			$sous_categorie = $ligne[5]; 
			$resume_court = $ligne[6];
			$resume_long = $ligne[7]; 
			$prix_ttc = $ligne[8];
			$disponibilite = $ligne[9]; 
 
			 // $query = "INSERT INTO $table (`id`, `marque`, `designation`, `univers`, `categorie`, `sous_categorie`, `resume_court`, `resume_long`, `prix_ttc`, `disponibilite`) VALUES('$id','$marque','$designation','$univers','$categorie','$sous_categorie','$resume_court','$resume_long','$prix_ttc','$disponibilite')"; 
			 $query = "INSERT INTO $table VALUES('$id','$marque','$designation','$univers','$categorie','$sous_categorie','$resume_court','$resume_long','$prix_ttc','$disponibilite')"; 
			 $result= MYSQL_QUERY($query); 
			 if(mysql_error())
        { /* Erreur dans la base de donnees, sûrement la table qu'il faut créer */
             print "Erreur dans la base de données : ".mysql_error();
             print "<br>Importation stoppée.";
             exit();
        } 
			 echo $query;
 
			// echo $categorie;
			// echo '<br>fin du premier résumé -------------------------------------------------------------------------<br>';
 
 
    }
}
 else
     { /* le fichier n'existe pas */
       echo "Fichier introuvable !<br>Importation stoppée.";
       exit();
     }
le problème c’est que j’ai des champs très long (texte entier…) dans mon fichier csv et je pense que
que la taille 1024 est trop petite…
Est-il possible de mettre une taille beaucoup plus grande ?
sam01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2007, 11h22   #2
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
Si tu ne précises pas la longueur dans les paramètres de fgetcsv la taille est illimitée (cf doc...).
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h00.


 
 
 
 
Partenaires

Hébergement Web