Des balises rtf au balises html...
Hors ligneKefren Le 23/04/2008 à 10:56 Profil de Kefren Configuration de Kefren

Bonjour et me revoila encore une fois ....

Je voudrais pouvoir passé d'un fichier édité en .rtf à une présentation html pour un affichage...

En ce qui concerne l'ouverture du fichier, jusque la ca va mais pour transposer les balises du rtf au html je ne sais plus :/

Donc sur google tous les article que j'ai pu trouver faisait passer du html au rtf mais pas l'inverse

Donc si vous connaissez un tuto ou tout ce qui pourrait m'aider en fait ^^ je prends ;)

je laisse le debut du code oci :




<?php
$fp
=fopen("importation/".$refart.".rtf","r"); /*ouvre le document de base en lecture*/
     
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.*/
        echo $Ligne//j'affiche ma ligne
}

fclose($fp);
?>


Donc voila me reste plus qu'à gérer les balises rtf ... je vous écoute :)
--
Si les poules traversent juste devant les voitures ... c'est pour aller de l'autre coté de la route !!!
Hors ligneAnthony Le 23/04/2008 à 23:17 Profil de Anthony Configuration de Anthony

Admin
Salut :)

Avant de pouvoir faire ça faut savoir comment RTF est formé ==> http://www.google.fr/search?hl=fr&q=format+rtf&btnG=Recherche+Google&meta=

Sinon si tu as des sources qui font HTML => RTF, c'est facile de faire l'inverse normalement, vu que RTF ce n'est pas du binaire c'est un format texte (tout du moins il me semble).

Tu auras surement besoin pour faire ça des expressions régulières

Tiens-nous au courant de ton avancée !
--

Hors ligneKefren Le 24/04/2008 à 10:09 Profil de Kefren Configuration de Kefren

D'un merci pour les tuto !!! J'ai pu mettre en place quelque petites condition dans un premier temps ...

Mais le problème c'est que je n'arrive pas à faire tourner ce que j'ai commencé :/

changement des saut de ligne, mise en gras, italique et souligné :







<?php
$balrtf1 
= '`\\par`';
$balrtf2 = '`\\b`';
$balrtf3 = '`\\b0`';
$balrtf4 = '`\\i`';
$balrtf5 = '`\\i0`';
$balrtf6 = '`\\ul`';
$balrtf7 = '`\\ulnone`';

$balhtml1 = '`<br />`';
$balhtml2 = '`<b>`';
$balhtml3 = '`</b>`';
$balhtml4 = '`<em>`';
$balhtml5 = '`</em>`';
$balhtml6 = '`<u>`';
$balhtml7 = '`</u>`';

$fp=fopen($fichier,"r");
echo '<br>';
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($balrtf1, $balhtml1, $Ligne);
          $Ligne = preg_replace($balrtf2, $balhtml2, $Ligne);
          $Ligne = preg_replace($balrtf3, $balhtml3, $Ligne);
          $Ligne = preg_replace($balrtf4, $balhtml4, $Ligne);
          $Ligne = preg_replace($balrtf5, $balhtml5, $Ligne);
          $Ligne = preg_replace($balrtf6, $balhtml6, $Ligne);
          $Ligne = preg_replace($balrtf7, $balhtml7, $Ligne);
               
          echo $Ligne
; //J'affiche ma ligne
}
          
fclose
($fp);
?>


Bon je sait bien qu'il n'y a pas que ca à gérer mais je voulais commencer par quelque chose de simple ... logique non ?? Histoire de ce familiariser avec tout ça.

Le problème est qu'il ne m'affiche même pas le contenu du fichier...

J'avais en ce qui concerne les caractères de remplacement j'ai tenté de les mettre entre double cote, simple cote , et comme ici simple cote suivi de `. mais ... rien à faire

PS : Je suis tombé sur un ancien topic où tu repondais à un debutant d'utiliser Dreamweaver dans un premier temps, j'utilise dreamweaver (partie code) car la lecture se fait simplement et de plus on à la possiblité de se connecter au FTP pour y coder directement sur les pages ;) et tout ça sans utilisé la partie graphique donc le code reste propre en tout cas ce n'est pas dreamweaver qui me le surcharge ;)
--
Si les poules traversent juste devant les voitures ... c'est pour aller de l'autre coté de la route !!!
Hors ligneAnthony Le 24/04/2008 à 20:05 Profil de Anthony Configuration de Anthony

Admin
Fais un $fichier = file_get_contents('nom du fichier'); ça t'éviteras de faire un fopen avec un while dedans.

Sinon pour le preg_replace un seul preg_replace suffit avec deux tableaux passés en paramètres (ces tableaux contiendront pour le premier tous les masques à remplacer genre \\par \\b etc ... et les seconds leurs correspondances (<br />, <strong>, etc ...)

Par contre rajoute dans le masque de l'expression régulière, ou plutôt dans ses options, les options "sim" ça marchera peut-être mieux.

Je ne connais pas le format RTF donc je ne peux pas vraiment t'aider dessus, mais le principe est celui-ci ;)
--

Hors ligneKefren Le 24/04/2008 à 21:49 Profil de Kefren Configuration de Kefren

Ben comme ta pu voir les balise correspondent au caractère de remplacement html ;) ensuite le premier  '\' c'est pour l'échappement ... il y a un rappel dans ton tuto :p car la balise de retour à la ligne c'est \par ^^

Sinon pour le preg_replace, tu me dit d'en faire un ok dans une boucle for je suppose ?! comme je connais la valeur max de mes balise à changer ...

Donc je vais voir tout ca enfin demain, la je suis sur une autre fonction pour récupérer des info à l'intérieur d'un txt, les infos sont séparées par des ';' et je galère à récupérer les valeurs dans des variables pour les insérées dans la BDD donc si tu as un tuto je prends sinon j'ouvre un autre topic ^^
--
Si les poules traversent juste devant les voitures ... c'est pour aller de l'autre coté de la route !!!
Hors ligneAnthony Le 24/04/2008 à 22:04 Profil de Anthony Configuration de Anthony

Admin
non un seul preg_replace avec des arrays :

<?php
$rechercher 
= array('`\\par`sim''`\\b`sim'etc ...);
$remplacer = array('<br />''<strong>'etc ...);

$texte preg_replace($rechercher$remplacer$texte);
?>
--

Hors ligneKefren Le 24/04/2008 à 22:18 Profil de Kefren Configuration de Kefren

Arrf en fait ça ne fonctione pas ... mes balise \qqch ne sont pas prise en compte ... du coup j'ai tout les B les i etc qui sont remplacés :s

exemple type d'une chaine à remplacer : \par et lorsque je met '`\\par`sim' ou '`\par`sim' il n'est pas remplacé :s

Par contre : 1 - J'ai cette balise  qui est pénible et qui ne passe pas :  \'e9  ->  &eacute;
                  2 - le "file_get_contents('nom du fichier');" me remplace une boucle ?? ou c'est juste en remplacement du fopen ?
--
Si les poules traversent juste devant les voitures ... c'est pour aller de l'autre coté de la route !!!
Hors ligneAnthony Le 24/04/2008 à 22:54 Profil de Anthony Configuration de Anthony

Admin
Fichiers en PHP

Sinon je regarderai ton problème demain soir ou après demain soir car là je vais me coucher, demain debout très tôt :)
--

Vous avez résolu votre problème avec VIC ? Faites-le savoir sur les réseaux sociaux !
Vulgarisation-informatique.com
Cours en informatique & tutoriels