//////////////////////////////////////////////////
////////////RECUP DES DONNEES////////////////////
/////////////////////////////////////////////////
//on utilise la fonction formate_pour_rtf pour éviter les souci de guillemet
//et pour reconvertir les caracteres courament utilisé dans le format rtf
//le titre
$titre=formate_pour_rtf("#TITRE");
//le titre complet
$auteur = formate_pour_rtf("#NOM");
$surtitre = formate_pour_rtf("#SURTITRE");
$date = formate_pour_rtf("[(#DATE|affdate)]");
$texte = formate_pour_rtf('[(#TEXTE|texte_script)]');
$chapo = formate_pour_rtf('[(#CHAPO|texte_script)]');
if(trim($chapo)==""){
$chapo = formate_pour_rtf('[(#DESCRIPTIF|texte_script)]');
}
$ps = formate_pour_rtf('[(#PS|texte_script)]');
//on va créer le fichier rtf sur la base du numero d'article
$fichier="article.rtf";
$fp=fopen($fichier,"w");
//puis on va écrire le document rtf assez brutalement
fwrite($fp,
"{\\rtf1\ansi\deff1\adeflang1025
{\fonttbl{\f0\froman\fprq2\fcharset0 Nimbus Roman No9 L;}{\f1\froman\fprq2\fcharset0 Times New Roman;}{\f2\fswiss\fprq2\fcharset0 Arial;}{\f3\froman\fprq2\fcharset0 Times New Roman;}{\f4\fnil\fprq0\fcharset0 Lucidasans;}}
{\colortbl;\\red0\green0\blue0;\\red255\green255\blue0;\\red179\green179\blue179;\\red128\green128\blue128;}
{\stylesheet{\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\\rtlch\af1\afs24\lang1033\ltrch\dbch\af1\afs24\langfe1033\loch\f1\fs24\lang1033\snext1 Standard;}
{\s2\sa120\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\\rtlch\af1\afs24\lang1033\ltrch\dbch\af1\afs24\langfe1033\loch\f1\fs24\lang1033\sbasedon1\snext2 Corps de texte;}
{\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\\rtlch\af4\afs24\lang1033\ltrch\dbch\af1\afs24\langfe1033\loch\f1\fs24\lang1033\sbasedon2\snext3 Liste;}
{\s4\sb120\sa120\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\\rtlch\af4\afs20\lang1033\ai\ltrch\dbch\af1\afs20\langfe1033\ai\loch\f1\fs20\lang1033\i\sbasedon1\snext4 L\'e9gende;}
{\s5\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\\rtlch\af4\afs24\lang1033\ltrch\dbch\af1\afs24\langfe1033\loch\f1\fs24\lang1033\sbasedon1\snext5 R\'e9pertoire;}
{\s6\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\\rtlch\af1\afs20\lang1033\ltrch\dbch\af1\afs20\langfe1033\loch\f1\fs20\lang1036\sbasedon1\snext6 Normal;}
{\s7\sb240\sa60\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\\rtlch\af2\afs18\lang1033\ai\ab\ltrch\dbch\af2\afs18\langfe1033\ai\ab\loch\f2\fs18\lang1033\i\b\sbasedon6\snext6 heading 9;}
{\s8\sa200\cf0\sl-260\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\\rtlch\af1\afs24\lang1033\ltrch\dbch\af1\afs24\langfe1033\loch\f1\fs24\lang1033\sbasedon6\snext8 Corps de texte - Contemporain;}
{\s9\sa200\cf0\sl-260\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\\rtlch\af1\afs24\lang1033\ai\ltrch\dbch\af1\afs24\langfe1033\ai\loch\f1\fs24\lang1033\i\sbasedon6\snext10 R\'e9dacteur - Contemporain;}
{\s10\sa120\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\\rtlch\af1\afs24\lang1033\ltrch\dbch\af1\afs24\langfe1033\loch\f1\fs24\lang1033\sbasedon6\snext10 Body Text;}
{\s11\sa160\cf0\sl440\slmult0\keep{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\\rtlch\af1\afs40\lang1033\ltrch\dbch\af1\afs40\langfe1033\loch\f1\fs40\lang1033\sbasedon6\snext9 Titre 1 - Contemporain;}
{\s12\keepn\cf0\sl260\slmult0\keep{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\\rtlch\af2\afs18\lang1033\ab\ltrch\dbch\af2\afs18\langfe1033\ab\loch\f2\fs18\lang1033\b\sbasedon6\snext8 Titre 2 - Contemporain;}
{\s13\sa120\keepn\cf0\sl440\slmult0\keep{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\\rtlch\afs32\lang1033\ltrch\dbch\afs32\langfe1033\loch\fs32\lang1033\sbasedon7\snext6{\*\soutlvl8} Encadr\'e9 (En-t\'eate) - Contemporain;}
{\s14\sa120\cf0\sl-280\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\\rtlch\af2\afs18\lang1033\ltrch\dbch\af2\afs18\langfe1033\loch\f2\fs18\lang1033\sbasedon6\snext14 Encadr\'e9 (Texte) - Contemporain;}
{\s15\cf0\\tqc\\tx4536\\tqr\\tx9072{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\\rtlch\af1\afs24\lang1033\ltrch\dbch\af1\afs24\langfe1033\loch\f1\fs24\lang1033\sbasedon6\snext15 header;}
{\s16\cf0\\tqc\\tx4536\\tqr\\tx9072{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\\rtlch\af1\afs24\lang1033\ltrch\dbch\af1\afs24\langfe1033\loch\f1\fs24\lang1033\sbasedon6\snext16 footer;}
{\s17\cf0\\tqc\\tx4818\\tqr\\tx9637{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\\rtlch\af1\afs24\lang1033\ltrch\dbch\af1\afs24\langfe1033\loch\f1\fs24\lang1033\sbasedon1\snext17 Pied de page;}
{\*\cs19\cf0\\rtlch\af1\afs24\lang1033\ltrch\dbch\af1\afs24\langfe1033\loch\f1\fs24\lang1033\sbasedon20 Default Paragraph Font;}
{\*\cs20\cf0\\rtlch\af1\afs20\lang1033\ltrch\dbch\af1\afs20\langfe1033\loch\f1\fs20\lang1036 Normal;}
{\*\cs21\cf0\\rtlch\af1\afs24\lang1033\ltrch\dbch\af1\afs24\langfe1033\loch\f1\fs24\lang1033\sbasedon19 page number;}
}
{\info{\creatim\yr2003\mo4\dy9\hr7\min2}{\\revtim\yr1601\mo1\dy1\hr0\min0}{\printim\yr1601\mo1\dy1\hr0\min0}{\comment StarWriter}{\vern6450}}\deftab708
{\*\pgdsctbl
{\pgdsc0\pgdscuse195\pgwsxn11906\pghsxn16838\marglsxn1417\margrsxn1417\margtsxn1417\margbsxn709\footery0{\*\footeryt425\footerxl0\footerxr0\footeryh708}{\footer \pard\plain \s16\cf0\\tqc\\tx4536\\tqr\\tx9072{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\\rtlch\af1\afs24\lang1033\ltrch\dbch\af1\afs24\langfe1033\loch\f1\fs24\lang1033 {\loch\f1\fs20\lang1036\i0\b0 Page {\field{\*\fldinst \\page\\* ARABIC}{\fldrslt 1}} sur 1}
\par }
\pgdscnxt0 Standard;}}
{\*\pgdscno0}\paperh16838\paperw11906\margl1417\margr1417\margt1417\margb709\sectd\sbknone\pgwsxn11906\pghsxn16838\marglsxn1417\margrsxn1417\margtsxn1417\margbsxn1417\footery709{\footer \pard\plain \s16\cf0\\tqc\\tx4536\\tqr\\tx9072{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\\rtlch\af1\afs24\lang1033\ltrch\dbch\af1\afs24\langfe1033\loch\f1\fs24\lang1033 {\loch\f1\fs20\lang1036\i0\b0 Page {\field{\*\fldinst \\page\\* ARABIC}{\fldrslt 1}} sur 1}
\par }
\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc
\pard\plain \ltrpar\s11\cf0\sl440\slmult0\keep{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa160\\rtlch\af1\afs40\lang1033\ltrch\dbch\af1\afs40\langfe1033\loch\f1\fs40\lang1033{\loch\f2\fs60\lang1036\i0\b0\f2{\fs60 $titre }}{\loch\f2\fs40\lang1036\f2\f2\f2{\b\fs28 $date}{\fs60 }}
\par \pard\plain \ltrpar\s11\cf0\sl440\slmult0\keep{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa160\\rtlch\af1\afs40\lang1033\ltrch\dbch\af1\afs40\langfe1033\loch\f1\fs40\lang1033 {\loch\f1\fs40\lang1036\i0\b0 $surtitre}
\par \pard\plain \ltrpar\s9\cf0\sl-260\slmult0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa200\\rtlch\af1\afs24\lang1033\ai\ltrch\dbch\af1\afs24\langfe1033\ai\loch\f1\fs24\lang1033\i {\loch\f1\fs20\lang1036\i\b0 $auteur}
\par \pard\plain \ltrpar\s10\cf0\chcbpat3{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa120\\rtlch\af1\afs24\lang1033\ltrch\dbch\af1\afs24\langfe1033\loch\f1\fs24\lang1033 {\loch\f1\fs20\lang1036\i0\b0 $chapo}
\par \pard\plain \ltrpar\s10\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa120\\rtlch\af1\afs24\lang1033\ltrch\dbch\af1\afs24\langfe1033\loch\f1\fs24\lang1033 {\loch\f1\fs20\lang1036\i0\b0 $texte}
\par \pard\plain \ltrpar\s10\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa120\\rtlch\af1\afs24\lang1033\ltrch\dbch\af1\afs24\langfe1033\loch\f1\fs24\lang1033
\par \pard\plain \ltrpar\s10\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa120\\rtlch\af1\afs24\lang1033\ltrch\dbch\af1\afs24\langfe1033\loch\f1\fs24\lang1033
\par \pard\plain \ltrpar\s10\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa120\\rtlch\af1\afs24\lang1033\ltrch\dbch\af1\afs24\langfe1033\loch\f1\fs24\lang1033
\par \pard\plain \ltrpar\s10\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa120\\rtlch\af1\afs24\lang1033\ltrch\dbch\af1\afs24\langfe1033\loch\f1\fs24\lang1033
\par \pard\plain \ltrpar\s10\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa120\\rtlch\af1\afs24\lang1033\ltrch\dbch\af1\afs24\langfe1033\loch\f1\fs24\lang1033
\par \pard\plain \ltrpar\s10\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa120\\rtlch\af1\afs24\lang1033\ab\ltrch\dbch\af1\afs24\langfe1033\ab\loch\f1\fs24\lang1033\b {\loch\f1\fs20\lang1036\i0\b $ps}
\par }
");
fclose($fp);
header("Location: $fichier ");
function formate_pour_rtf($texte){
global $racine;
//les caracteres accentué comme les entité html corrrespondante
//doivent etre reconvertie
$motif=array( "é", "&ecute;", "&ecute",
"è", "è", "è",
"ê", "ê", "ê",
"à", "à", "à",
"â", "â", "â",
"î", "î", "î",
"ô", "ô", "ô",
"ù", "ù", "ù",
"&", "&", //& doit etre reconverti en &
"<", "<", //< doit etre reconverti en <
">", ">", //> doit etre reconverti en >
"«", "«", //le guillmet ouvrant doit etre reconverti en guillemet simple
"»", "»", //le guillmet fermant doit etre reconverti en guillemet simple
""", """, //le guillmet SIMPLE doit etre reconverti en guillemet simple
"{", "}", //devient \{ et \}
"’",
" "
);
$remplacement=array(
"\\'e9", "\\'e9", "\\'e9", //é
"\\'e8", "\\'e8", "\\'e8", //è
"\\'ea", "\\'ea", "\\'ea", //ê
"\\'e0", "\\'e0", "\\'e0", //à
"\\'e2", "\\'e2", "\\'e2", //â
"\\'ee", "\\'ee", "\\'ee", //î
"\\'f4", "\\'f4", "\\'f4", //ô
"\\'f9", "\\'f9", "\\'f9", //ù
"&", "&",
"<", "<",
">", ">",
"\"", "\"",
"\"", "\"",
"\"", "\"",
"\\{", "\\}",
"'",
" "
);
$texte=str_replace($motif,$remplacement,$texte);
//Il faut maintenant reconvertir tous les
et
en passage à la ligne
$br=array("
","
","
","
","
","
");
$br_replace=array("\n\\par\n","\n\\par\n","\n\\par\n","\n\\par\n","\n\\par\n","\n\\par\n");
$texte=str_replace($br,$br_replace,$texte);
//et changer les images
$liste_image=liste_balise("img",$texte);
for($i=0;$iexemple
$texte= "<img src='uyuy'> blala <div align=center> iuiu <img src='hoho'> ";
print_r(liste_balise("img",$texte));
//affiche Array([0]=><img src='uyuy'>,[1]=><img src='hoho'>)
*/
function liste_balise($balise,$texte){
//initilisation on cherche la premiere occurence de <$balise
//pour ne pas gérer les problemes de casse je vais to mettre en minuscule
$texte_originale=$texte;
$balise=strtolower($balise);
$texte=strtolower($texte);
$debut_recherche=0;
$compteur=0;
$resultat=array();
$recherche="<".$balise;
do{
$pos_debut=strpos($texte,$recherche,$debut_recherche);
if($pos_debut===FALSE){//on a rien trouvé
return $resultat;
}else{
$pos_fin=strpos($texte,">",$pos_debut+1);
if ($pos_fin===FALSE){//la balise n'est pas refermée on renvoie 0
return $resultat;
}else{
$resultat[$compteur]=substr($texte_originale,$pos_debut,$pos_fin-$pos_debut+1);
$compteur++;
$debut_recherche=$pos_fin;
}
}
}while ($pos_debut!=FALSE);
return $resultat;
}
/**
* @return String
* @param String $attr
* @param String $balise
* @desc renvoie la valeur de l'attribut
*/
function attribut($attr,$balise){
//initilisation on cherche la premiere occurence de $attr="
//pour ne pas gérer les problemes de casse je vais to mettre en minuscule
$balise_originale=$balise;
$balise=strtolower($balise);
$attr=strtolower($attr);
$resultat="";
//on a deux cas de figure soit l'attribut commence avec un guillemet simple
//soit avec un guillemet double
$recherche1=$attr."=\"";
$recherche2=$attr."='";
$pos_debut=strpos($balise,$recherche1);
if ($pos_debut===FALSE){
$pos_debut=strpos($balise,$recherche2);
if (pos_debut===FALSE){ return $resultat; }
$pos_fin=strpos($balise,"'",$pos_debut+strlen($recherche2));
$resultat=substr($balise_originale,$pos_debut+strlen($recherche2),$pos_fin-($pos_debut+strlen($recherche2)));
return $resultat;
}else{
$pos_fin=strpos($balise,"\"",$pos_debut+strlen($recherche1));
$resultat=substr($balise_originale,$pos_debut+strlen($recherche1),$pos_fin-($pos_debut+strlen($recherche1)));
return $resultat;
}
}
/**
* @return String
* @param String $texte
* @desc Vire toutes les balises
*/
function nettoie_balise($texte){
do{
$start=strpos($texte,"<");
if($start!==FALSE){
$fin=strpos($texte,">",$start+1);
if($fin!==FALSE){
$texte=substr_replace($texte,"",$start,$fin-$start+1);
}
}
}while($start!==FALSE);
return $texte;
}
?>