Formulaire php et insertion automatique dans un document rtf (word)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 22 724 fois - Téléchargée 19 fois

Contenu du snippet

Voici le code que j'ai réussi a écire après de long moment de réflexion et d'une utilisation intensive des forums et de l'aide de chacun.

Ce code permet donc de générer un document rtf depuis un formulaire PHP.
Au début je voulais utiliser un .DOC mais trop complexe à mettre en place.
le .RTF reste la même chose pour l'utilisateur d'un point de vue mise en page.

Dans le code suivant on récupère nos variables PHP, on ouvre un document de base qui nous sert de base pour créer tous les documents, on créer un nouveau document, on insère chaque ligne du document de base en remplacant les balises par nos valeur PHP dans le nouveau document créé.

Voici le code sur clique d'un boutton classique:

Source / Exemple :


<?php
if(isset($_POST['nom_du_bouton'])) 
{
$nom_fic = $_POST['Nom_de_mon_fichier'];
$var1= $_POST['var1'];	
$var2= $_POST['var2'];

$fp=fopen("reminder.rtf","r"); /*ouvre le document de base en lecture*/
$new=fopen("doc/".$nom_fic.".rtf","w+"); /* Créer le nouveau document dans le répertoire doc.*/
	
	while(!feof($fp)) { /*Tant que je ne suis pas a la fin de mon fichier je lis ligne par ligne.*/	
	
		$Ligne = fgets($fp,255); /* On récupère ligne par ligne les données.*/
		$Ligne = preg_replace("#ma_balise_1#", $var1, $Ligne);
		$Ligne = preg_replace("#ma_balise_2#", $var2, $Ligne);
		fputs($new,$Ligne); /* Apres avoir remplacé les balises par les valeur je les écris dans le novueau document*/

	}

	fclose($fp);/*Fermeture du fichier de base*/
	fclose($new);/*Fermeture du nouveau fichier*/

?>

Conclusion :


Il vous faut donc un document de base qui vous servira pour créer tous vos documents RTF.
dans se document vous pouvez mettre des balise ma_balise_1, ma_balise_2, etc...
Ici: reminder.rtf

Si vous avez un document Word il vous suffit d'enregistrer se document au format RTF et c'est pareil.

A voir également

Ajouter un commentaire

Commentaires

ofillion
Messages postés
9
Date d'inscription
dimanche 26 juillet 2009
Statut
Membre
Dernière intervention
12 novembre 2009
-
Génial !

Merci, ca fonctionne à merveille !
baborge77
Messages postés
12
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
12 novembre 2009
-
Re,

Pour la suppression du fichier sur le serveur, j'ai ajouter un sc ript sur la page d'envoi pour supprimer le fichier (s'il existe)...

--------------------------------------------------------------
<?php
if (file_exists($nom_fic .".rtf")){unlink($nom_fic.".rtf");}
?>

--------------------------------------------------------------
baborge77
Messages postés
12
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
12 novembre 2009
-
Bonsoir,

pour ma part, j'ai utiliser ce code en fin de génération du document:
---------------------------------------------------------------
$SRC_FILE = $nom_fic .".rtf";
$filename = basename($SRC_FILE);
header("Content-Type: application/vnd.ms-word");
header("Content-Disposition: attachment; filename=$filename");
@readfile($SRC_FILE);
---------------------------------------------------------------
Slyders
Messages postés
300
Date d'inscription
mardi 12 octobre 2004
Statut
Membre
Dernière intervention
8 janvier 2010
2 -
Bonjour,

c'est une source qui a déjà 3 ans, je ne saurai te répondre, dsl

Slyders.
ofillion
Messages postés
9
Date d'inscription
dimanche 26 juillet 2009
Statut
Membre
Dernière intervention
12 novembre 2009
-
La source de Slyders fonctionne nickel dans mon cas. Toutefois, j'aimerais aller un peu plus loin. Comme je ne veux pas que le nouveau fichier créé reste sur le serveur, je voudrais faire le traitement en 3 étapes :

1- Générer le fichier
2- Ouvrir le fichier automatiquement
3- Supprimer le fichier du serveur.

Est-ce possible d'automatiser le tout??? Pour le visiteur, je souhaite que tout soit transparent. Du genre il clique, le fichier s'ouvre et il peut l'enregistrer sur son disque, c'est tout.

Merci beaucoup !

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.