IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[CSV] Conversion d'un tableau html en un fichier csv


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 5
    Points : 5
    Points
    5
    Par défaut [CSV] Conversion d'un tableau html en un fichier csv
    Bonjour,

    je suis en train de bosser sur un projet ou une page est généré (pas par moi malheureusement ) dans une page HTML et je cherche à converitr ce tableau en un fichier au format CSV.
    En fait j'ai déjà écrit mon script PHP dans lequel je convertis les balises <td> en " et </td> en "; à l'aide de la fonction preg_match.
    Mais mon problème est pour la conversion des balises </tr>, je voudrais les remplacer par un saut ligne, j'ai donc utilisé \r\n malheurement au lieu de faire le saut de ligne le fichier CSV contient ces caractères.

    Donc si quelqu'un a une idée???

  2. #2
    Rédacteur

    Avatar de Yoteco
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    1 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 099
    Points : 2 498
    Points
    2 498
    Par défaut
    Salut,

    Tu as quel système d'exploitation ? Et comment tu fais pour écrire dans le fichier? Tu peux nous montrer un bout de code?
    Blog - Mon espace developpez -
    Oracle Certified Professional, Java SE 6 Programmer
    eZ Publish Certified developer

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Yoteco
    Salut,

    Tu as quel système d'exploitation ? Et comment tu fais pour écrire dans le fichier? Tu peux nous montrer un bout de code?
    C'est vrai que je ne suis pas rentré dans les détails je suis sous linux, j'utilise la fonction fwrite pour écrire dans le fichier.
    Enfin voilà une bout de code :
    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
    32
    33
    34
    35
     
    	//ouverture du fichier html
    	$hHtml = fopen("./fichier.html", "r+");
     
    	//ouverture du fichier csv
    	$hCsv = fopen("./fichier.csv", "w+");
     
    	//lecture du fichier html
    	$contents = array();
    	while(($str = fread ($hHtml, 8192))!=false){
    		array_push($contents, $str);
    	}
    	fclose ($hHtml);
     
    	//traitement de la lecture
    	$new_contents = array();
    	while(sizeof($contents)){
    		$str = array_shift($contents);
    		$str = preg_replace('`<th([^>]+)>`', '"', $str);
    		$str = preg_replace('`</th>`', '";', $str);
    		$str = preg_replace('`<td([^>]+)>`', '"', $str);
    		$str = preg_replace('`</td>`', '";', $str);
    		$str = preg_replace('`\s`', '', $str);
    		$str = preg_replace('`<html>|<body>|<tbody>|<tr>|</tbody>|</a>|<div([^>]+)>|<thead>|</thead>|<a([^>]+)>|<table([^>]+)>|<h([^>]+)>|</h([^>]+)>|<img([^>]+)>|<tr([^>]+)>`', '', $str);
    		$str = preg_replace('`</tr>`', '\\r\\n' , $str);
    		$str = preg_replace('/""+/', '', $str);
    		array_push($new_contents, $str);
    	}
     
    	//écriture du fichier csv
    	while(sizeof($new_contents)){
    		fwrite($hCsv, array_shift($new_contents));
    	}
     
    	fclose($hCsv);

  4. #4
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2006
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 519
    Points : 1 104
    Points
    1 104
    Par défaut
    Je crois que sous Unix/Linux, le saut de ligne s'effectue avec \n tout seul, sans \r

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Citation Envoyé par spidermario
    Je crois que sous Unix/Linux, le saut de ligne s'effectue avec \n tout seul, sans \r
    Comment écrire un retour à la ligne dans un fichier ?

    Les caractères échappés (\r, \n, \t, etc) ne sont pas interprétés dans une chaîne délimitée par des single quotes (' - tout comme les variables). Utilisez-en des doubles et ne les échappez pas (\n suffira par exemple).

  6. #6
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par julp
    Les caractères échappés (\r, \n, \t, etc) ne sont pas interprétés dans une chaîne délimitée par des single quotes (' - tout comme les variables). Utilisez-en des doubles et ne les échappez pas (\n suffira par exemple).
    Merci beaucoup grâce à toi ça marche enfin

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PowerShell] Tableau pour éditer un fichier CSV et export.
    Par GarsDuCalvados dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 10/02/2015, 08h59
  2. passer d'un tableau croisé dynamique à un fichier csv?
    Par ballantine's dans le forum Excel
    Réponses: 1
    Dernier message: 22/03/2010, 11h45
  3. Réponses: 1
    Dernier message: 17/06/2009, 10h19
  4. [HTML] conversion d'un tableau html statique vers excel
    Par More dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 21/08/2008, 17h30
  5. Réponses: 32
    Dernier message: 11/03/2007, 11h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo