Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
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 09/02/2011, 11h36   #1
Invité de passage
 
Inscription : mai 2010
Messages : 4
Détails du profil
Informations forums :
Inscription : mai 2010
Messages : 4
Points : 2
Points : 2
Par défaut PHP / Word publipostage

Bonjour,
Je développe une appli en php et j'ai besoin de faire du publipostage grâce a des courrier type.
J'ai trouvé un code php (qui fonctionne) le permettant et qui me convient parfaitement, mais je ne le comprend pas entièrement et il y a surtout un partie que je ne comprend pas.

Voici le 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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
 
<?php
 
	$Nom = "Dupont";
	$Prenom = "François";
	$Adresse = "12 blablabla";
	$Ville = "PARIS";
	$Cp = "75800";
 
	// Lettre
	$f=fopen("./word/toto.rtf","r");
	$R=fopen("./word/toto.doc","w");
 
	while (!feof($f))
	{
		$ligne=fgets($f,20000);
		$Long=strlen($ligne);
		$Nouvligne="";
		for ($i=$inc;$i<$Long;$i++)
		{
			if (substr($ligne,$i,4)=="\{\{")
			{
				$deb=$i;
				$var="";
				for ($j=$i+4;$j<$Long;$j++)
				{
					if (substr($ligne,$j,4)=="\}\}")
					{
						$fin=$j;
						break;
					}
				}
				$var=substr($ligne,$deb+4,$fin-$deb-4);
				if ($var=="NOM") $Nouvligne.=$Nom;
				else if ($var=="PRENOM") $Nouvligne.=$Prenom;
				else if ($var=="ADRESSE") $Nouvligne.=$Adresse;
				else if ($var=="CP") $Nouvligne.=$Cp;
				else if ($var=="VILLE") $Nouvligne.=$Ville;
				else $Nouvligne.="???????";
				$i=$j+3;
			}
			else
			{
				$Nouvligne.=substr($ligne,$i,1);
			}
		}
		fwrite($R,$Nouvligne);
	}
	fclose($f);
	fclose($R);
 
?>
La grosse partie que je ne comprend pas c'est la variable $inc, elle est déclaré nul part et je ne sais pas a quoi elle correspond.
Sinon d'après ce que j'ai compris, le code permet de lire caractère par caractère le contenu du fichier .rtf et de détecter ce qu'il y a entre {{ }} ?

Merci
Zhato est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 14h13   #2
Membre Expert
 
Avatar de gene69
 
Inscription : janvier 2006
Messages : 951
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : janvier 2006
Messages : 951
Points : 1 063
Points : 1 063
mouais.

On peut pas vraiment répondre à la question avec uniquement ça. Si c'est un vieux code, peut-être que register Global était activé et que c'était une valeur passée par REQUEST.

Sinon une variable non initialisée vaut 0.

Juste une remarque, si je ne me trompe pas, c'est pas un vrai fichier doc qui est généré mais un fichier texte maquillé en .doc par le truchement d'un changement d'extension;

[troll]Sa marchera sous window mais pas sur les systèmes d'exploitation sérieux (Mac, linux...)[/troll]
__________________
PHP fait nativement la validation d'adresse électronique Vous êtes perdu en PHP? rassurez-vous ici (en)
Utilisez le bouton résolu!
gene69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 14h26   #3
Invité de passage
 
Inscription : mai 2010
Messages : 4
Détails du profil
Informations forums :
Inscription : mai 2010
Messages : 4
Points : 2
Points : 2
J'ai bien préciser qu'il fonctionne, donc ça veut dire que je l'ai tester (copie du code et tester avec mes fichiers).
Et après l'avoir testé donc, je peux te dire qu'il génère bien un fichier .doc, que je peux ouvrir avec Word et je retrouve la mise en page, la police, ... de mon fichier d'origine en .rtf.

Citation:
On peut pas vraiment répondre à la question avec uniquement ça.
Je n'ai que ça, et cela fonctionne uniquement avec ca.
Zhato 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 06h18.


 
 
 
 
Partenaires

Hébergement Web