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 11/07/2007, 12h38   #1
Invité de passage
 
Inscription : mars 2007
Messages : 5
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 5
Points : 3
Points : 3
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???
MnzNezo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2007, 12h57   #2
Rédacteur
 
Avatar de Yoteco
 
Alain Sahli
Ingénieur développement logiciels
Inscription : décembre 2004
Messages : 1 086
Détails du profil
Informations personnelles :
Nom : Alain Sahli
Âge : 25

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

Informations forums :
Inscription : décembre 2004
Messages : 1 086
Points : 1 479
Points : 1 479
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?
Yoteco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2007, 13h03   #3
Invité de passage
 
Inscription : mars 2007
Messages : 5
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 5
Points : 3
Points : 3
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 :
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);
MnzNezo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2007, 13h20   #4
Membre émérite
 
Étudiant
Inscription : septembre 2006
Messages : 498
Détails du profil
Informations personnelles :
Âge : 18

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2006
Messages : 498
Points : 809
Points : 809
Je crois que sous Unix/Linux, le saut de ligne s'effectue avec \n tout seul, sans \r
spidermario est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2007, 15h13   #5
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
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).
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2007, 15h53   #6
Invité de passage
 
Inscription : mars 2007
Messages : 5
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 5
Points : 3
Points : 3
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
MnzNezo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h40.


 
 
 
 
Partenaires

Hébergement Web