Afficher le contenu rtf dans une page web php

technoman
Invité n'ayant pas de compte PHPfrance

24 nov. 2011, 11:13

Bonjour,
quelqu'un peut m'aider, à afficher dans une page web le contenu d'un fichier rtf.
faut-il utilisé une classe php?

ViPHP
ViPHP | 2577 Messages

24 nov. 2011, 11:32

Bonjour,

Tu veux afficher le contenu d'un fichier rtf ou juste transmettre un fichier rtf directement.

Si tu veux afficher le contenu d'un fichier rtf (lecture du contenu et envoi par php - genre fonction readfile), il faut trouver le bon type mime et utiliser la fonction header avant d'envoyer le contenu.
Si c'est uniquement un lien vers un fichier rtf, c'est un problème de paramétrage de ton pc.

Tu peux essayer application/msword ou application/rtf comme type mime.

technoman
Invité n'ayant pas de compte PHPfrance

24 nov. 2011, 14:15

merci,

mais se que je veut exactement,
c'est d'avoir un textarea qui peut afficher un contenu rtf, comme il le fait MS Word !!!

par exemple :

Code : Tout sélectionner

<textarea id="rtf"> {\rtf1\ansi{\fonttbl\f0\fswiss Helvetica;}\f0\pard This is some {\b bold} text.\par } </textarea>

ViPHP
ViPHP | 2577 Messages

24 nov. 2011, 15:37

Et tu le fais comment avec word ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

25 nov. 2011, 10:00

<textarea name"rtf">
<?php
echo file_get_contents('lefichierrtfquivabiensurleserveuroueb.rtf');
?>
</textarea>
note au passage qu'il faut nommer un champ de formulaire si tu compte l'exploiter

@+
Il en faut peu pour être heureux ......

Invité
Invité n'ayant pas de compte PHPfrance

25 nov. 2011, 10:28

Et tu le fais comment avec word ?
merci,

comme vous savez Ms word peut lire les ficher rtf et les afficher correctement .
Ce que je veut c'est un script php qui peut lire un fichier rtf et l'afficher sur ma page web correctement avec sa mise en forme.

ViPHP
ViPHP | 1996 Messages

25 nov. 2011, 18:56

It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

technoman
Invité n'ayant pas de compte PHPfrance

29 nov. 2011, 17:22

Merci pour ta réponse .
Avez vous un exemple pour utilisé cette classe.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

29 nov. 2011, 18:08

Merci pour ta réponse .
Avez vous un exemple pour utilisé cette classe.
comme c'est mis ligne 29 à 36 de la classe ? (si si dans les commentaires)

Example on how to use this class:
=================================
		$r = new rtf( stripslashes( $rtf));
		$r->output( "xml");
		$r->parse();
		if( count( $r->err) == 0) // no errors detected
			echo $r->out;

@+
Il en faut peu pour être heureux ......

manu revait
Invité n'ayant pas de compte PHPfrance

06 janv. 2015, 15:40

Bonjour
La conversation est ancienne cependant quelqu'un pourra peut être m'aider
le créateur de la classe utilise ereg()qui est maintenant obsolète, on doit utiliser preg_match().
Comme je ne maitrise pas suffisamment les expressions régulières pour modifier moi même la classe
quelqu'un connaitrait il une version plus récente de cette classe legère et fonctionnelle ou me donner une règle simple pour remplacer les ereg() par des preg_match()

ViPHP
ViPHP | 928 Messages

06 janv. 2015, 15:50

Pour convertir ereg() en preg_match() tu dois ajouter les délimiteurs, par exemple :

Code : Tout sélectionner

ereg('[0-9]+?', $str);
va devenir :

Code : Tout sélectionner

preg_match('#[0-9]+?#', $str);
J'ai l'habitude d'utiliser # comme délimiteur, mais tu peux utiliser n'importe quel caractère, à condition qu'il ne soit pas présent dans ta regexp. Donc s'il n'y a pas de # dans les regexp, utilise # c'est très bien. S'il y en a, soit tu changes de délimiteur, soit tu échapes le # dans ta regexp avec un \.

Par exemple :

Code : Tout sélectionner

ereg('[0-9]+?#(foo|bar)', $str);
va devenir :

Code : Tout sélectionner

ereg('#[0-9]+?\#(foo|bar)#', $str);
Si tu as un eregi(), tu rajoutes simplement un "i" après le délimiteur, comme ceci :

Code : Tout sélectionner

eregi('[0-9]+?#(foo|bar)', $str);
va devenir :

Code : Tout sélectionner

ereg('#[0-9]+?\#(foo|bar)#i', $str);
Si tu as des ereg_replace(), tu fais pareil qu'au dessus, sauf que tu remplaces par preg_replace().

++

manu revait
Invité n'ayant pas de compte PHPfrance

06 janv. 2015, 15:56

merci pour ta réponse rapide je teste cela tout de suite

ViPHP
ViPHP | 928 Messages

06 janv. 2015, 16:00

Ou sinon tu mets des @ devant les appels des ereg_* pour cacher les erreurs. C'est crade, mais bon j'imagine de toute façon que la classe n'est pas récente :)

manu revait
Invité n'ayant pas de compte PHPfrance

06 janv. 2015, 16:11

Elle date de 10 ans ...
J'ai fait les modifs avec # ça fonctionne merci Genova
il y a tjs des Notices du type Undefined index: xxx in xxx sur mon EasyPHP 14 de développement mais le résultat est correct