客户的一个字段里存的备注是这样的:
{\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';
再运行,出来啦: