2012-02-13 6 views
3

に新しい行を作成していない(少なくとも私に!)。下のすべてのスクリプトは、rtfテンプレートの '++ name'を、 'me'を1行に、 'you'を次の行に印刷するハードコードされた変数に置き換えます。新しい行を作るために "\ r \ n"を試みるだけでなく、 "\ par"を無駄にしようとしました。以下のコードは、 '++ name'を "meyou"に置き換えて1行にします。私はstackoverflowや他のフォーラムでいくつかの "解決策"を見つけましたが、誰も私のために働いていませんでした。PHPコードは、私が困惑問題を解決するために必要な正確なコードにPHPスクリプトを減少RTFテンプレート

ご迷惑をおかけして申し訳ありません。

<?php 
    $name = "me" . "\r\n" . "you"; 
    header('Content-type: application/msword'); 
    header('Content-Disposition: inline, filename=filenot.rtf'); 
    $filename = 'rtfnotice.rtf'; 
    $fp = fopen ($filename, 'r'); 
    $output = fread($fp, filesize($filename)); 
    fclose ($fp); 
    $output = str_replace('++name', $name, $output); 
    echo $output; 
?> 
+0

あなたのMIMEタイプは 'application/msword'なので、私は普通のオペレーティングシステムの改行文字は何もしないと思います。あなたはcarat-P '^ p'を使ってみましたか?私はキャリッジリターン(まだかもしれない)のためにそれを使用するために使用されたMS Wordを知っています、そして、それはあなたが探しているものかもしれません。私はこれを答えとして掲示するだろうが、それがうまくいくとは約束できない。試してみるだけです。 – rdlowrey

+0

は 'PHP_EOL' http://stackoverflow.com/questions/128560/when-do-i-use-the-php-constant-php-eol答えたと、私は「日を試みたすべての人に感謝 – Richard

答えて

3

RTFでは、各フォーマットセクションは、口ひげで囲まれています。 「書式設定」は初めに置かれます。だから何か太字にするには{\b hey, this text is bold} "me"と "you"を別々の行に出力するには、{\pard\par}を入力するか、独自の段落にすることができます。私が思う{\pard me \par}{\pard you \par}

は、あなたはまた、単に\lineを置くことができます。 RTFは楽しいものではありませんか?

いくつかの時間前、私はlibrary for outputting RTFを書きました。私の "フォーマット"機能が役立つかもしれません。基本的には、テキストに複数のプロパティを指定し、RTFで出力します。これはAS3ですが、PHPに変換するのはかなり楽です。

+0

を使用してみてくださいすべてが、私に2行を得たコード: $ name = "me"。 "{\ pard \ par}" "君は"; –

+0

\ pardと\ parコマンドが私のために働いていました。そして、ありがとう、私は\ line、\ n、\ rと他のものの束を試し、何も働いていませんでした。再度、感謝します。 – Maximus

1

これはコンテンツタイプと関連する可能性があります。私はあなたの関連したRTFのアプリケーションは、少なくとも正しいMIMEタイプに基づいて、それをレンダリングされます次にapplication/rtfapplication/mswordを交換したいです。私はちょうど今、私のサーバー上でこれをしようとしたとき

は、それがうまく改行でWordでレンダリング。

関連する問題