客戶的一個字段裏存的備註是這樣的:
{\rtf1\ansi\deff0{\fonttbl{\f0\fnil\fcharset134 \'cb\'ce\'cc\'e5;}}
\viewkind4\uc1\pard\lang2052\f0\fs24\'d1\'f9\'c6\'b7\'a3\'baA-AZ01-414
\par
\par }
這是什麼鬼? 看到前面的rtf,有可能是rtf格式文件。
在網上找一個rtf轉html的庫: https://github.com/henck/rtf-html-php
這庫是composer的,之前都是tp裏面放到vendor目錄下,死活弄不了。
那就先安裝composer,
然後在項目根目錄下寫一個composer.json
{
"require": {
"php": ">=5.3.0"
}
}
在項目根目錄下運行 composer require henck/rtf-to-html
在根目錄下出現了下載的henck的包:
composer.json變成這樣,其中https://packagist.phpcomposer.com是國內的映像,提速用的,自己加的。
{
"require": {
"php": ">=5.3.0",
"henck/rtf-to-html": "^1.1"
},
"repositories": {
"packagist": {
"type": "composer",
"url": "https://packagist.phpcomposer.com"
}
}
}
運行代碼,
$rtf = file_get_contents('d:/a.rtf');
echo '<pre>';
echo $rtf;
$document = new \RtfHtmlPhp\Document($rtf);
print_r($document);
很不幸,只是把rtf文件內容顯示出來了:
{\rtf1\ansi\deff0{\fonttbl{\f0\fnil\fcharset134 \'cb\'ce\'cc\'e5;}}
\viewkind4\uc1\pard\lang2052\f0\fs24\'d1\'f9\'c6\'b7\'a3\'baA-AZ01-414
\par
\par }
然後報錯:
Class 'RtfHtmlPhp\Document' not found
怎麼辦?
在php文件開頭加一句:
require $_SERVER['DOCUMENT_ROOT'].'/vendor/autoload.php';
再運行,出來啦: