10

PHP で圧縮された RTF にアクセスし、RTF コードをブラウザに出力する方法はありますか?

SQL にテキスト列があり、そこから RTF を抽出したい - データを 0x1F8B として出力することができた

このデータは圧縮された RTF であると思います - http://www.freeutils.net/source/jtnef/rtfcompressed.jsp

[MS-OXRTFCP] の使用: リッチ テキスト形式 (RTF) 圧縮アルゴリズムhttp://msdn.microsoft.com/en-us/library/cc463890%28v=exchg.80%29

サンプルデータ :

0x1F8B0800000000000000654E316EC3300CEC5CA07FE0D6AD909D1628E0A1C8D01F74E422CB94CD46A11C4A6E5018F97B6967EC72381EC9BB5B516B6CD04BE11DC23C36ED5B8B03C5E8364C5EC6C61D0E2BC62CB5F6C988C358AE5C0AC6592F2DC630792D541D1C957DEA6E76D260144EFF57B7A7C715434E59CD0A3A541A1C8E4A240EFBB490EBEC027F98AE2796E11597D0E0EC75C013D1BC8360F1EF0EC316B115695BF89A08CE390B70816ABC571EA74AA542EEBF295460D975642B069F5EEBF45C6CB27707E5F4FBB14558EC1D83D9EEEC28D9BE142E8B59719697BB6C051FFE00D09796A337010000

そして、これは私が望むもののように見えますが、VB http://www.vbforums.com/attachment.php?attachmentid=87371&d=1326754610にあります

4

2 に答える 2

7

データ サンプルは gzip 圧縮されたデータであり、gzdecodeデコードに使用します。提供された16進文字列ではなく、バイナリ文字列を渡す必要があります(hex2binまたはpackを使用して変換します)

if (!function_exists(hex2bin)){
    function hex2bin($hexStr){
        return pack('H*', $hexStr);
    }
}
$rtf = gzdecode(hex2bin('1F8B0800000000000000654E316EC3300CEC5CA07FE0D6AD909D1628E0A1C8D01F74E422CB94CD46A11C4A6E5018F97B6967EC72381EC9BB5B516B6CD04BE11DC23C36ED5B8B03C5E8364C5EC6C61D0E2BC62CB5F6C988C358AE5C0AC6592F2DC630792D541D1C957DEA6E76D260144EFF57B7A7C715434E59CD0A3A541A1C8E4A240EFBB490EBEC027F98AE2796E11597D0E0EC75C013D1BC8360F1EF0EC316B115695BF89A08CE390B70816ABC571EA74AA542EEBF295460D975642B069F5EEBF45C6CB27707E5F4FBB14558EC1D83D9EEEC28D9BE142E8B59719697BB6C051FFE00D09796A337010000'));

生データはこちら。

{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fswiss\fprq2\fcharset0 Arial;}{\f1\fnil\fcharset0 Arial;}}
{\colortbl ;\red0\green0\blue0;}
\viewkind4\uc1\pard\keep\keepn\sa80\cf1\f0\fs22 The moon is the brightest object in the \i\f1 Earth's \i0\f0 sky?\par
\par
\cf0\par
Another question.\par
}

そして、これがレンダリングされたテキストです。

月は地球の空で最も明るい天体ですか?

別の質問です。

生の rtf またはレンダリングのみが必要かどうかはわかりません。無料の (できれば) PHP RTF から HTML へのコンバーターをご覧ください。htmlでrtfが必要な場合。

于 2012-06-14T03:33:16.300 に答える
6

かどうかはわかりません

0x1F8B0800000000000000654E316EC3300CEC5CA07FE0D6AD909D1628E0A1C8D01F74E422CB94CD46A11C4A6E5018F97B6967EC72381EC9BB5B516B6CD04BE11DC23C36ED5B8B03C5E8364C5EC6C61D0E2BC62CB5F6C988C358AE5C0AC6592F2DC630792D541D1C957DEA6E76D260144EFF57B7A7C715434E59CD0A3A541A1C8E4A240EFBB490EBEC027F98AE2796E11597D0E0EC75C013D1BC8360F1EF0EC316B115695BF89A08CE390B70816ABC571EA74AA542EEBF295460D975642B069F5EEBF45C6CB27707E5F4FBB14558EC1D83D9EEEC28D9BE142E8B59719697BB6C051FFE00D09796A337010000

実際には圧縮されたRTFデータです。しかし、もしそうなら、Zarafa の PHP MAPI 拡張機能はそれを解凍する機能を提供します: mapi_decompressrtf().

于 2012-05-29T13:52:44.830 に答える