【问题标题】:Convert ASCII to plaintext in PHP在 PHP 中将 ASCII 转换为纯文本
【发布时间】:2012-05-22 16:00:32
【问题描述】:

我正在抓取一些网站,并且有 ASCII 文本,我想将其转换为纯文本以存储在数据库中。比如我想要

I have got to tell anyone who will listen that this is
one of THE best adventure movies I've ever seen.
It's almost impossible to convey how pumped I am
now that I've seen it.

转换为

I have got to tell anyone who will listen that this is
one of THE best adventure movies I've ever seen. It's
almost impossible to convey how pumped I am now that
I've seen it.

我用谷歌搜索了我的手指,有什么帮助吗?

【问题讨论】:

标签: php html ascii plaintext


【解决方案1】:

你可以使用html_entity_decode:

echo html_entity_decode('...', ENT_QUOTES, 'UTF-8');

几点说明:

  • 请注意,您似乎确实想将 HTML 编码字符串(带有  等实体)转换为 ASCII AKA 纯文本。

  • 此示例转换为UTF-8,这是所有 ASCII 字符(即低于 128 的字符代码)的 ASCII 兼容字符编码。如果你真的想要纯 ASCII(从而丢失所有重音字符和外语字符),你应该分别去除所有有问题的字符。

  • 最后一个参数('UTF-8')对于保持与不同 PHP 版本的兼容性是必要的,因为自 PHP 5.4.0 以来默认值已更改。

更新:Example with your text in ideone

更新 2:根据@Daan 的建议将 ENT_COMPAT 更改为 ENT_QUOTES。

【讨论】:

  • 感谢您的意见。我实际上已经尝试过使用 html_entity_decode 但我的输出仍然有引号的 ASCII 等价物,例如'这是 HTML 编码的吗?我确实想从 HTML 编码的字符串转换为 ASCII 纯文本,因为我正在对结果进行一些情绪分析。
  • 提供的示例适用于我的输入;你确定你将正确的参数传递给html_entity_decode吗?
  • @Daan 是的,它可以在浏览器中运行,但是当我在 CLI 中运行相同的代码时,问题仍然存在。
  • 啊,当然。你会想要使用ENT_QUOTES 而不是ENT_COMPAT。不知道为什么这在 ideone 中可以正常工作。
  • 做到了!抛出一个答案,我会标记它。感谢您的帮助。
猜你喜欢
  • 2017-06-22
  • 2010-10-06
  • 1970-01-01
  • 2014-04-29
  • 1970-01-01
  • 1970-01-01
  • 2014-04-07
  • 2010-12-29
相关资源
最近更新 更多