Est-il possible d'afficher un fichier RTF dans une page Web en utilisant PHP?
J'ai un fichier RTF que je veux afficher dans une page web après les balises ont été remplacés par des entrées de l'utilisateur.
Je voudrais être en mesure d'afficher le fichier RTF sans avoir à le convertir en quelque chose avant de l'afficher.
Chaque fois que j'essaie maintenant il me donne le popup ouvrir/enregistrer de la boîte, même si je le dis pour l'afficher en ligne avec:
header("Content-type: application/msword");
header("Content-Disposition: inline; filename=mark.rtf");
header("Content-length: " . strlen($output));
echo $output;
source d'informationauteur Mark
Vous devez vous connecter pour publier un commentaire.
La plupart des navigateurs ne pas afficher de manière fiable RTF contenu. Il EST possible d'analyser la RTF en HTML, et afficher le contenu HTML sur votre page web.
Vous besoin d'une sorte de programme pour analyser les RTF et les convertir au format HTML. Je suis en supposant qu'il a d'être libre. Je ne sais pas du tout fiable gratuit RTF analyse ou de la RTF à des bibliothèques HTML en PHP.
Je vous recommande d'utiliser une ligne de commande programme de conversion comme RTF2HTML: http://sageshome.net/?w=downloads/soft/RTF2HTML.html
Vous devez télécharger et installer ce programme sur votre serveur web, permettent à l'utilisateur de télécharger le fichier dans un répertoire temporaire, puis appeler l'application en ligne de commande de PHP shell_exec():
Ensuite, analyser les résultats en HTML et de les afficher. Pas une mauvaise stratégie. Notez que vous aurez probablement besoin d'enlever la tête, le corps et peut-être d'autres balises si vous allez pour afficher le contenu à l'intérieur d'une autre page web.
Vous pourriez vouloir vérifier https://github.com/tbluemel/rtf.js pour côté client, RTF rendu. Il est encore à ses débuts, mais il rend même les graphiques incorporés. Soutien pour le rendu intégré WMF œuvre d'art est toujours très très limité, cependant, nécessite la prise en charge du navigateur pour la balise.
D'abord: vous avez votre type de contenu de mal. pour RTF c'est
text/rtf
Deuxième: vous ne serez en mesure d'afficher dans la ligne de ce type de contenu, qui peut être affiché par le navigateur web. RTF n'est pas un de ces. Donc vous ne serez pas en mesure de l'afficher en ligne sans avoir à les convertir, ou sans plug-in pour le navigateur. Bien sûr, la conversion peut être à la volée.
Vous besoin d'une RTF en HTML convertisseur écrit en PHP. Je pense que cette page contient votre solution:
http://www.websofia.com/2014/05/a-working-rtf-to-html-converter-in-php/
Pages Web du site peuvent contenir uniquement du HTML. Vous auriez besoin d'un navigateur plugin comme flash pour afficher d'autres types de fichiers. Voir Scribd par exemple.
Ce n'est pas exactement la réponse à votre question, mais une chose que vous pouvez faire est de retirer le "filename=marque.rtf" de l'en-tête. J'ai eu des navigateurs traiter de quelque chose comme un téléchargement, si je comprend "nom de fichier" dans l'en-tête, même si le "Content-Disposition" est "en ligne".
Vous ne pouvez pas juste sortie un fichier dans le code PHP. Vous avez besoin d'extraire les données à partir d'elle, puis imprimer le contenu en ligne.
La fonction php 'file_get_contents" peut faire ce que vous avez besoin. Les fonctions manuel est ici: http://us2.php.net/filegetcontents
Un exemple d'utilisation est ici: