Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks
Bibliothèques et frameworks Forum d'entraide sur les frameworks, templates, bibliothèques de code (PDFLib, eZPdf, JpGraph, Artichow, PEAR, etc). Avant de poster : FAQ bibliothèques, toutes les FAQ PHP et cours bibliothèques
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 12/06/2006, 09h29   #1
Futur Membre du Club
 
Étudiant
Inscription : mai 2004
Messages : 108
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2004
Messages : 108
Points : 19
Points : 19
Envoyer un message via MSN à KeKeMaN
Par défaut Extraire l'en-tête d'un fichier RTF

Bonjour,

Dans le but de pouvoir imprimer des lettres types par lots, j'ai décidé de les mettres à la suite dans un fichier rtf via les sauts de page.
Le problème, c'est que je ne sais pas comment faire pour ne récupérer que le contenu du fichier rtf (car sinon, le fichier est invalide car il y a plusieurs en-têtes).
Pour l'instant j'arrive à lire le contenu du fichier, et de remplacer les champs qui m'interresse par les valeurs de ma base de données :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
//ouverture de la lettre type
$fichier = "dossier_incomplet.rtf";
$handle = fopen($fichier, "r");
$contents = fread($handle, filesize($fichier));
fclose($handle);
$contents = str_replace($cherche, $remplace, $contents);
 
// on récrie le tout dans un nouveau fichier
$fichier = "dossier_incompler_genere.rtf";
$fp = fopen($fichier, "w");
fwrite($fp, $contents);
fclose($fp);
Si quelqu'un avait une idée ...
Merci d'avance !
KeKeMaN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2006, 09h20   #2
Futur Membre du Club
 
Étudiant
Inscription : mai 2004
Messages : 108
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2004
Messages : 108
Points : 19
Points : 19
Envoyer un message via MSN à KeKeMaN
C'est bon g trouvé en fait !! Pour ceux que ca interesse :

1. Extraction de l'en-tête :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
$handle = fopen($fichier, "r");
while (!feof($handle)) {
	$ligne = fgets($handle, 4096);
	$tmp = stristr($ligne, "\pard");
	if($tmp != "") {
		$this->en_tete .= substr($ligne,0,-strlen($tmp));
		break;
	} else {
		$this->en_tete .= $ligne;
	}
}
fclose($handle);
Quand je trouve la motif "\pard" dans la ligne je m'arrete.

2. Extraction du contenu :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
$dansEnTete = true;
$handle = fopen($fichier, "r");
while (!feof($handle)) {
	$tmp = "";
	$ligne = fgets($handle, 4096);
	if($dansEnTete) {
		$tmp = stristr($ligne, "\pard");
	}
	if($tmp != "" && $dansEnTete==true) {
	$this->contenu .= substr($ligne,-strlen($tmp));
		$dansEnTete = false;
	} else {
		if($tmp == "" && $dansEnTete==false) {
			$this->contenu .= $ligne;
		}
	}
}
// suppression de l'accolade fermante
$this->contenu = substr($this->contenu, 0, -1);
fclose($handle);
Tout à la fin, je supprimer l'accolade fermante qui termine le fichier rtf, il faut donc ne pas oublier de la remettre avant de générer le fichier rtf !!!

Si vous avez des remarques, n'hésiter pas !!
KeKeMaN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2009, 18h16   #3
Invité de passage
 
Inscription : avril 2009
Messages : 7
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 7
Points : 2
Points : 2
Par défaut extratction du contenu du fichier rtf

bonjour
j'ai essayé les deux code j'ai pas réussit à récupérer le contenu car je le veux dans une chaine de caractères ou un tableau de chaine merci pour votre réponse
innocence 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 12h38.


 
 
 
 
Partenaires

Hébergement Web