Récupérer le contenu d'un fichier dans un tab
0z0z
Messages postés
109
Statut
Membre
-
0z0z Messages postés 109 Statut Membre -
0z0z Messages postés 109 Statut Membre -
Bonjour,
Je travaille sur un site internet en PHP et je voudrais afficher certaines informations contenu dans fichier CSV.
Mon fichier CSV est enfaite un tableau. Et je veux aussi l'afficher dans un tableau. Mais pas entièrement.
Pour l'instant, chaque ligne de mon CSV est contenu dans une ligne de tableau dans mon site. Ce que je voudrais c'est un tableau avec des colonnes.
Bon ca c'est juste un début. Parce que ce que je veux en réalité c'est afficher seulement certains champs. Et ces champs ne doivent être afficher que si la date d'expédition est supérieur à une certaines date.
Voici mon code :
$file = "C:\...\nomFichier.csv";
$contenu = fopen ($file, "r") or die("Cannot open $file");
if (!$fp = fopen($file,"r")) {
echo "Echec de l'ouverture du fichier";
exit;
}
else {
echo "<table border='1'>\n";
while(!feof($fp)) {
echo "<tr>";
$j = sizeof($ligne);
// On récupère une ligne
$Ligne = fgets($fp,1024);
// On affiche la ligne
echo "<td>$Ligne</td>";
echo "</tr>";
}
echo "</table>\n";
fclose($fp); // On ferme le fichier
}
J'ai vraiment besoin d'aide. S'il vous plait.
Merci d'avance.
Je travaille sur un site internet en PHP et je voudrais afficher certaines informations contenu dans fichier CSV.
Mon fichier CSV est enfaite un tableau. Et je veux aussi l'afficher dans un tableau. Mais pas entièrement.
Pour l'instant, chaque ligne de mon CSV est contenu dans une ligne de tableau dans mon site. Ce que je voudrais c'est un tableau avec des colonnes.
Bon ca c'est juste un début. Parce que ce que je veux en réalité c'est afficher seulement certains champs. Et ces champs ne doivent être afficher que si la date d'expédition est supérieur à une certaines date.
Voici mon code :
$file = "C:\...\nomFichier.csv";
$contenu = fopen ($file, "r") or die("Cannot open $file");
if (!$fp = fopen($file,"r")) {
echo "Echec de l'ouverture du fichier";
exit;
}
else {
echo "<table border='1'>\n";
while(!feof($fp)) {
echo "<tr>";
$j = sizeof($ligne);
// On récupère une ligne
$Ligne = fgets($fp,1024);
// On affiche la ligne
echo "<td>$Ligne</td>";
echo "</tr>";
}
echo "</table>\n";
fclose($fp); // On ferme le fichier
}
J'ai vraiment besoin d'aide. S'il vous plait.
Merci d'avance.
A voir également:
- Récupérer le contenu d'un fichier dans un tab
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier bin - Guide
- Comment recuperer un message supprimé sur whatsapp - Guide
- Fichier rar - Guide
3 réponses
Bon après modification de mon code, j'arrive à obtenir les champs souhaité dans mon tableau PHP.
L'un des champs affiche une date. Maintenant ce que je voudrais c'est afficher les champs dont la date est supérieur ou égale à la date système.
Voici mon code :
$file = "...\nomFichier.csv";
$contenu = fopen ($file, "r") or die("Cannot open $file");
if (!$fp = fopen($file,"r")) {
echo "Echec de l'ouverture du fichier";
exit;
}
else {
echo "<table border='1'>\n";
while(!feof($fp)) {
echo "<tr>";
$j = sizeof($ligne);
// On récupère une ligne
$Ligne = fgets($fp,1024);
$lesColonnes = explode(";", $Ligne);
$lesColonnes = str_replace('"','',$lesColonnes);
// On affiche la ligne
echo "<td>$lesColonnes[23]</td>";
echo "<td>$lesColonnes[22]</td>";
echo "<td>$lesColonnes[24]</td>";
echo "<td>$lesColonnes[25]</td>";
echo "<td>$lesColonnes[26]</td>";
echo "<td>$lesColonnes[17]</td>";
echo "</tr>";
}
echo "</table>\n";
fclose($fp);
}
Il me faut donc ici une boucle mais où ? Et surtout comment la faire ?
Un peu d'aide s'il vous plait :(
L'un des champs affiche une date. Maintenant ce que je voudrais c'est afficher les champs dont la date est supérieur ou égale à la date système.
Voici mon code :
$file = "...\nomFichier.csv";
$contenu = fopen ($file, "r") or die("Cannot open $file");
if (!$fp = fopen($file,"r")) {
echo "Echec de l'ouverture du fichier";
exit;
}
else {
echo "<table border='1'>\n";
while(!feof($fp)) {
echo "<tr>";
$j = sizeof($ligne);
// On récupère une ligne
$Ligne = fgets($fp,1024);
$lesColonnes = explode(";", $Ligne);
$lesColonnes = str_replace('"','',$lesColonnes);
// On affiche la ligne
echo "<td>$lesColonnes[23]</td>";
echo "<td>$lesColonnes[22]</td>";
echo "<td>$lesColonnes[24]</td>";
echo "<td>$lesColonnes[25]</td>";
echo "<td>$lesColonnes[26]</td>";
echo "<td>$lesColonnes[17]</td>";
echo "</tr>";
}
echo "</table>\n";
fclose($fp);
}
Il me faut donc ici une boucle mais où ? Et surtout comment la faire ?
Un peu d'aide s'il vous plait :(
Bon l'opération sur les dates est réussi.
Enfaite au lieu d'une boucle j'ai mit une contrainte :
$date = date("d/m/Y");
if ($lesColonnes[17] >= $date){ echo .... }
Me reste plus qu'une chose à faire.
Ce que j'affiche ici est une liste d'article qui doit être fabriqué. Et il est très probable qu'un même article doivent être fabriqué plusieurs fois.
$lesColonnes[26] représente la quantité du produit. Ce que je voudrais c'est rassembler les produits qui sont affichés plusieurs fois. C'est-à-dire qu'il faudrait affiché un produit seulement une fois. Et s'il apparait plusieurs fois dans le fichier alors faire $lesColonnes[26]+1
Quelqu'un va pouvoir m'aider cette fois-ci ?! :(
Enfaite au lieu d'une boucle j'ai mit une contrainte :
$date = date("d/m/Y");
if ($lesColonnes[17] >= $date){ echo .... }
Me reste plus qu'une chose à faire.
Ce que j'affiche ici est une liste d'article qui doit être fabriqué. Et il est très probable qu'un même article doivent être fabriqué plusieurs fois.
$lesColonnes[26] représente la quantité du produit. Ce que je voudrais c'est rassembler les produits qui sont affichés plusieurs fois. C'est-à-dire qu'il faudrait affiché un produit seulement une fois. Et s'il apparait plusieurs fois dans le fichier alors faire $lesColonnes[26]+1
Quelqu'un va pouvoir m'aider cette fois-ci ?! :(
Bon je vais vous aider à m'aider.
Je pense ajouté une variable nb que j'initialiserai à 0. Lorsque j'entrerai dans mon while il prendrai +1
Et ensuite il faudrait faire un test.
J'avais pensé faire un truc du genre :
echo "<table border='1'>\n";
$nb = 0;
while(!feof($fp)) {
$nb++;
echo "<tr>";
$j = sizeof($ligne);
// On récupère une ligne
$Ligne = fgets($fp,1024);
$lesColonnes = explode(";", $Ligne);
$lesColonnes = str_replace('"','',$lesColonnes);
$date = date("d/m/Y");
if ($lesColonnes[17] >= $date){
if ($lesColonnes[22].[$nb] = $lesColonnes[22].[$nb-1]){
// On affiche la ligne
echo "<td>$lesColonnes[23]</td>";
echo "<td>$lesColonnes[22]</td>";
echo "<td>$lesColonnes[24]</td>";
echo "<td>$lesColonnes[25]</td>";
echo "<td>$lesColonnes[26]</td>";
echo "<td>$lesColonnes[17]</td>";
echo "</tr>";
}
}
}
echo "</table>\n";
J'ai essayé ca mais la ca ne marche pas. Allez faites un effort s'il vous plait j'ai besoin d'aide.
Je pense ajouté une variable nb que j'initialiserai à 0. Lorsque j'entrerai dans mon while il prendrai +1
Et ensuite il faudrait faire un test.
J'avais pensé faire un truc du genre :
echo "<table border='1'>\n";
$nb = 0;
while(!feof($fp)) {
$nb++;
echo "<tr>";
$j = sizeof($ligne);
// On récupère une ligne
$Ligne = fgets($fp,1024);
$lesColonnes = explode(";", $Ligne);
$lesColonnes = str_replace('"','',$lesColonnes);
$date = date("d/m/Y");
if ($lesColonnes[17] >= $date){
if ($lesColonnes[22].[$nb] = $lesColonnes[22].[$nb-1]){
// On affiche la ligne
echo "<td>$lesColonnes[23]</td>";
echo "<td>$lesColonnes[22]</td>";
echo "<td>$lesColonnes[24]</td>";
echo "<td>$lesColonnes[25]</td>";
echo "<td>$lesColonnes[26]</td>";
echo "<td>$lesColonnes[17]</td>";
echo "</tr>";
}
}
}
echo "</table>\n";
J'ai essayé ca mais la ca ne marche pas. Allez faites un effort s'il vous plait j'ai besoin d'aide.