将 RTF 转换为纯文本

2024-01-23

我有一个 ERP 系统,它以 RTF 格式存储文本,我试图从中提取纯文本。

我通过谷歌搜索并找到了类似的解决方案this one http://webcheatsheet.com/php/reading_the_clean_text_from_rtf.php和其他一些使用 REGEX 替换的,但它们似乎都不起作用。我总是得到NULL or }}}或者完全错误的东西。

这是我尝试过的正则表达式:

$matches = array('/\{\\\\(.+?)\}/','/\\\\(.+?)\b/');

$row['text'] = preg_replace($matches,'',$row['text']);

然而它返回:}}}

这是我的 RTF 数据:

{\rtf1\deff0{\fonttbl{\f0 Calibri;}{\f1 Arial;}}{\colortbl ;\red0\green0\blue255 ;}{\*\defchp \fs22}{\*\listoverridetable}{\stylesheet {\ql\fs22 Normal;}{\*\cs1\f1\fs20 Default Paragraph Font;}{\*\cs2\sbasedon1\f1\fs20 Line Number;}{\*\cs3\ul\fs22\cf1 Hyperlink;}{\*\ts4\tsrowd\fs22\ql\trautofit1\tscellpaddfl3\tscellpaddl108\tscellpaddfr3\tscellpaddr108\tsvertalt\cltxlrtb Normal Table;}{\*\ts5\tsrowd\sbasedon4\fs22\ql\trbrdrt\brdrs\brdrw10\trbrdrl\brdrs\brdrw10\trbrdrb\brdrs\brdrw10\trbrdrr\brdrs\brdrw10\trbrdrh\brdrs\brdrw10\trbrdrv\brdrs\brdrw10\trautofit1\tscellpaddfl3\tscellpaddl108\tscellpaddfr3\tscellpaddr108\tsvertalt\cltxlrtb Table Simple 1;}}\nouicompat\splytwnine\htmautsp\sectd\pard\plain\ql{\f1\fs20\cf0 Migration Fileserverdaten innerhalb derselben oder einer vertrauten Dom\u228\'e4ne}\f1\fs20\par\pard\plain\ql{\f1\fs20\cf0 Anpassung der Laufwerksfreigaben}\f1\fs20\par\pard\plain\ql{\f1\fs20\cf0 Freigabenerstellung wie Bestand (weitere Absprachen hierzu m\u246\'f6glich)}\f1\fs20\par\pard\plain\ql{\f1\fs20\cf0 Hostname(n) Quellsystem(e):}\f1\fs20\par\pard\plain\ql{\f1\fs20\cf0 Hostname Zielsystem:}\f1\fs20\par\pard\plain\ql{\f1\fs20\cf0 Bekanntes Datenvolumen:}\f1\fs20\par\pard\plain\ql{\f1\fs20\cf0 Clientseitige Nacharbeiten aufgrund fest vergebener Einstellungen}\f1\fs20\par\pard\plain\ql{\f1\fs20\cf0 erfolgen nach Aufwand oder durch den Auftraggeber.}\f1\fs20\par\pard\plain\ql{\f1\fs20\cf0 Es wird im Besonderen darauf hingewiesen, da\u223\'df Datei- und Ornderberechtigungen 1:1 beibehalten werden. Die Neuvergabe jedweder Datei- oder Ordnerberechtigung kann nach Aufwand und Anweisung des Auftraggebers durchgef\u252\'fchrt werden.}\f1\fs20\par\pard\plain\ql{\f1\fs20\cf0 Voraussetzungen zur Zusatzaufwandsfreien Durchf\u252\'fchrung:}\f1\fs20\par\pard\plain\ql{\f1\fs20\cf0 Gigabit Switching zwischen allen Quell- und Zielsystemen, Vollzugriff auf den zu migrierenden Datenbestand}\f1\fs20\par\pard\plain\ql\f1\fs20\par}

2019 年编辑:对于所有发现这个问题的人,我使用这个单类项目已经 4 年了,没有出现任何问题https://github.com/henck/rtf-html-php https://github.com/henck/rtf-html-php


我正在为其他跳到此处的人发布此问题的一般解决方案。

public static function converToPlain($text){
    $text = preg_replace('"{\*?\\\\.+(;})|\\s?\\\[A-Za-z0-9]+|\\s?{\\s?\\\[A-Za-z0-9‹]+\\s?|\\s?}\\s?"', '', $text);
    return $text;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 RTF 转换为纯文本 的相关文章

  • 如何从 pandas 数据框中的列中删除字符串值

    我正在尝试编写一些代码 以逗号分隔数据帧列中的字符串 因此它成为一个列表 并从该列表中删除某个字符串 如果存在 删除不需要的字符串后 我想再次以逗号加入列表元素 我的数据框如下所示 df Column1 Column2 0 a a b c
  • PHP:STR 替换为链接

    我有这个 PHP 聊天框 如果我在聊天框中键入链接 它不会将其显示为链接 我如何使用 STR 替换来执行此操作 它应该响应诸如 http http com nl www www 之类的内容 我的其他 STR 替换行如下所示 bericht
  • 如何在 Laravel 中 session_write_close() ?

    Running session write close before sleep 在 Laravel 中似乎不起作用 因为会话仍然被其他请求阻止 直到当前连接完成 我试图sleep 在 Laravel 中 不会阻止其他请求 发现 sessi
  • 如何将 .env 添加到 codeigniter?

    我尝试按照以下步骤使 php 连接到 Outlookhttps learn microsoft com en us outlook rest php tutorial https learn microsoft com en us outl
  • 正则表达式替换混合数字+字符串

    我想删除所有包含数字的单词 示例 LW23 London W98 String 从上面的字符串中我唯一想保留的是 London String 这可以用正则表达式来完成吗 我目前正在使用 Python 但 PHP 代码也很好 Thanks E
  • 从单个 javascript 函数向两个不同的 PHP 脚本发送两个 Ajax 请求

    是否可以同时向两个或多个 Php 脚本发送 Ajax 请求 我知道这可以串行实现 从 1 获取响应 然后从另一个获取响应 但我想知道是否可以同时实现 请协助我使用以下代码 function calShowUpload if http rea
  • 使用 Python 编辑 RTF 文件

    也许这是一个愚蠢的问题 但我不明白 所以道歉 我有一个 RTF 文档 我想更改它 例如 有一个表 我想复制一行并以面向对象的方式更改代码中第二行中的文本 我认为 pyparsing 应该是可行的方法 但我摆弄了几个小时但没有明白 我没有提供
  • Lumen 微框架 => php artisan key:generate

    我正在尝试 PHP 微框架 Lumen 来自 Laravel 我的第一步就是调查 env example文件并复制一份以供我使用 env文件 就像 Laravel 中一样 有一个变量 APP KEY 现在我尝试了简单的命令php artis
  • 计算轮班工作时间并检测

    我有个问题 我的英语很差 我需要用PHP做一个加班计算 已经有一个代码可以实现这一点 但当工作时间超过2天时 计算就会出错 工作开始 2018 09 09 13 43 工作结束 2018 09 11 07 13 结果 07 18 04 00
  • Mandrill 验证错误

    很高兴能在 StackOverflow 上提出我的第一个问题 多年来我一直依靠它自学了很多东西 我的问题是这样的 尝试通过 Mandrill 的 API 发送邮件时出现以下错误 status error code 1 name Valida
  • 将自定义参数传递给 Symfony2 中的自定义 ValidationConstraint

    我正在 Symfony2 中创建一个表单 表格只包含一个book字段允许用户在列表中进行选择Books实体 我需要检查是否选择了Book属于Author我的控制器里有 public class MyFormType extends Abst
  • Slim 3 - 斜杠作为路由参数的一部分

    我需要使用可以包含斜杠 的参数来编写 URL 例如 经典的 hello username 路线 默认情况下 hello Fabien将匹配此路线 但不匹配 hello Fabien Kris 我想问你如何在 Slim 3 框架中做到这一点
  • 如何在php中关闭夏令时

    我有这行代码将夏令时设置为 打开 将其设置为 关闭 的正确方法是什么 is daylight saving On rcmail config dst active bool date I date I 这是一个大写字母 i 当当前默认时区
  • 由于未定义符号,PECL solr 未加载:curl_easy_getinfo

    我正在尝试加载 PECL solr 扩展 我尝试使用 pecl install solr 并下载并使用 phpize configure make 来安装它 在这两种情况下 扩展安装时都没有错误 但在 apache 重新启动后 或在命令行上
  • 使用 PHP 创建图表并导出为 PDF

    我正在寻找有关使用 PHP 创建图表的建议 我还希望能够将这些图表导出到 PDF 文档 我目前正在使用谷歌图表 但我不喜欢将我的所有信息发送到谷歌的想法 我更喜欢自己的托管解决方案 我见过很多 Flash 解决方案 但我不知道有什么方法可以
  • Magento 中的子域 htaccess 问题

    public html www domain com public html subdomain subdomain domain com public html htaccess public html subdomain htacces
  • 如何检查号码是否是巴基斯坦用户的手机号码而不是固定电话号码

    我所做的是从开头删除 92 或 0092 并使用以下代码检查它是否是巴基斯坦人的有效手机号码 if preg match 3 0 4 0 9 number 1 Pakistani mobile number else not a pakis
  • __callStatic():从静态上下文实例化对象?

    我对 PHP 中的 静态 和 动态 函数和对象如何协同工作感到困惑 特别是在 callStatic 方面 callStatic 的工作原理 您可以有一个普通的班级 MyClass 在班级内您可以 放置一个名为 callStatic 的静态函
  • MYSQL 的 Google OAuth 2.0 用户 ID 数据类型

    我正在实施 Google OAuth 2 0 并注意到 Google OAuth 返回的唯一用户 ID 是21位数字长的 我想大整数 20 足以满足这种需求 但我现在看到 Google OAuth 返回的用户 ID 的长度感到困惑 关于我应
  • 使用 md5 加密的 PHP 和 Mysql 查询出现问题

    我使用普通的 php mysql 插入查询并使用 md5 加密密码 这是插入查询 sql mysql query INSERT INTO user username password role approved values usernam

随机推荐

  • [Batch]循环直到按下某个键

    我想做的是循环直到按下 x 我知道CHOICE与 T选项 But CHOICE我想要播放的动画超时时间太长 这是一个例子 echo off cls set frame 2 loop cls type frame txt Here is wh
  • 是否可以根据文件类型使用不同的主题?

    是否可以根据文档类型运行主题 例如 我想要一个用于 js html 的主题 另一个用于 md 文件的主题 这不再是正确的答案 请参阅另一个允许您执行问题所要求的软件包的答案 我试图删除这个答案 但无法做到这一点 因为它是目前接受的答案 不
  • C# 添加浮点数表现得很奇怪[重复]

    这个问题在这里已经有答案了 我正在尝试添加一行单元格并在网格中的新单元格中显示总计 我正在使用 DevExpress 的 gridControl 该网格有 12 列 代表一年中的月份 我想添加月份值并在第 13 列中显示总数 我的问题是 如
  • 调试 VBA 中的空格

    我的表格中有一个单元格 内容如下 641233 之后有某种空格 我认为这是一个空格 所以在我的 vba 代码中 我尝试了多种方法来将这个空格从字符串中取出 但都没有application trim nor replace work With
  • 为什么多个 WHERE 条件会减慢查询而不是加快查询速度?

    问题在于 与使用一两个条件而不是全部三个条件运行的查询相比 所讨论的查询运行速度非常慢 现在查询 Select Count From SearchTable Where Date gt 8 1 2009 AND Zip In Select
  • 缩放 CSS/JavaScript

    我想知道如何通过javascript控制缩放属性 像 div style top 一样 如何指定缩放 Firefox 和 Chrome Webkit 相当于 IE 特定的zoom属性分别是 moz transform https devel
  • 将数组的一部分向右移动的最快方法

    我需要在一个小数组中的给定索引处 插入 一个元素 即 将所有索引较大的元素向右移动 1 位 在 NET 中最快的方法是什么 注意 我添加了自己的答案 但我仍在寻找解释和更快的替代方案 编辑 我确实需要一个数组 而不是List
  • 为什么后台任务会阻止 SimpleHTTPServer 中的响应?

    我正在编写一个简单的基于浏览器的前端 它应该能够启动后台任务 然后从中获取进度 我希望浏览器收到一个响应 说明任务是否成功启动 然后轮询以确定任务何时完成 但是 后台任务的存在似乎会阻止立即发送 XMLHttpRequest 响应 因此我无
  • 无法在 Swift 中调用 Objective C 类方法

    我的项目是用 swift 语言编写的 我在项目中使用过可可豆荚 我使用可可豆荚将 HDAlerts 集成到我的项目中 HDAlerts位于objective c中 因此我在项目中添加了objective c桥接标头并在其中导入了Alerts
  • 我怎样才能让它工作。我尝试授予 sudo 权限

    我目前正在使用linux 并尝试使用 sudo 权限启动应用程序 但没有成功 我刚刚安装了 expo cli 并创建了新项目 当我启动应用程序时 表明 错误信息 Failed to construct transformer Error E
  • 使用 node.js 的服务器端 Mustache.js 示例

    我正在寻找一个使用的例子Mustachejs with Nodejs 这是我的例子 但它不起作用 Mustache未定义 我正在使用 master 分支的 Mustachejs var sys require sys var m requi
  • 无法解析符号 newRequestQueue - Volley

    我在 MainActivity 文件中有这段代码 RequestQueue queue new Volley newRequestQueue this 并且由于某种原因newRequestQueue部分是红色的 当我将鼠标悬停在它上面时 我
  • 表达与陈述

    我问的是关于 c 的问题 但我认为它在大多数其他语言中都是一样的 有谁有一个好的定义表达式 and 声明区别是什么 表达 评估某个值的东西 例子 1 2 x 陈述 执行某事的一行代码 例子 GOTO 100 在最早的通用编程语言 如 FOR
  • 即使 FetchMode = Join,Hibernate 也会发出 select 语句

    我有一个与国家 地区实体映射的 userAccount 实体 UserAccount 类中的国家 地区映射如下 ManyToOne fetch FetchType EAGER Fetch FetchMode JOIN JoinColumn
  • 在使用 window.open 打开的窗口中使用 document.write 编写的脚本元素不会在 Windows 7 上的 IE8 中执行

    我遇到了一个似乎只出现在 Windows 7 上的问题 它似乎在不同版本的 Windows 上的 IE8 中工作正常 基本上 我使用 window open 创建一个新窗口 然后使用 document write 写入该新窗口的内容 其中包
  • 如何在 Yii2 中的 ON 条件中使用常量 hasMany 关系

    我尝试创建一个多态关联 这在 Rails 中很常见 但不幸的是在 Yii2 中却不是 作为实现的一部分 我需要定义关系 public function getImages return this gt hasMany RecipeImage
  • IPv6:connect() 总是失败并显示 errno 22

    操作系统是Ubuntu 我正在对基本 IPv6 操作进行简单测试 PC通过集线器与IP Camera 支持IPv6 连接 ping6 测试成功 ping6 I eth1 fe80 240 8cff fe94 451e PING fe80 2
  • 在 Ruby 中从字符串中提取数字

    我正在使用这段代码 s line match ABCD d 4 values at 1 0 要从字符串中提取数字 例如 ABCD1234 ABCD1235 ABCD1236 etc 它有效 但我想知道在 Ruby 中我还有什么其他选择 My
  • JavaScript跨域调用:从HTTP到HTTPS的调用

    我需要对同一域的安全 HTTPS URL 进行异步调用 目前该页面正在使用常规 HTTP 非安全 换句话说 这是调用同一域中但使用 HTTPS 的 URL 在将此调用切换到 HTTPS 之前 我结束了实现服务器端代理以允许跨域 AJAX 调
  • 将 RTF 转换为纯文本

    我有一个 ERP 系统 它以 RTF 格式存储文本 我试图从中提取纯文本 我通过谷歌搜索并找到了类似的解决方案this one http webcheatsheet com php reading the clean text from r