我正在以编程方式清理评论和其他用户提交的内容中的一些基本语法。大写 I、句子的第一个字母等。评论和内容与 HTML 混合在一起,因为用户在格式化文本时有一些选项。
事实证明,这比预期的更具挑战性,尤其是对于 PHP 和 regex 的新手而言。
如果有像 ucfirst 这样的函数会忽略 html 以帮助大写句子?
此外,任何有关在 html 中清理此类文本的链接或教程将不胜感激。请在评论中留下您认为有帮助的任何内容。谢谢!
编辑:示例文本:
<div><p>i wuz walkin thru the PaRK and found <strong>ur dog</strong>. <br />i hoPe to get a reward.<br /> plz call or text 7zero4 8two8 49 sevenseven</div>
我需要它(最终)
<div><p>I was walking through the park and found <strong>your dog<strong>. <p>I hope to get a reward.</p><p> Please call or text (704) 828-4977.</p>
我知道这比预期的问题要远一些,但我的想法是逐步做到这一点。ucfirst() 只是我用来在每次扫描时进行一次小清理的众多函数之一。即使我必须通过过滤器运行文本 100 次,当站点没有流量时,它也会在 cron 运行中运行。我希望有一个讨论论坛可以继续下去,因为显然会有一些关于继续这种方法的好主意。关于如何通过各种方式将其作为一个整体项目来处理的任何想法,请发表评论。
我想本着问题本身的精神。那么 ucfirst 将不是最好的函数,因为它不能接受要忽略的事物的参数列表。一个标志 IGNORE_HTML 会很棒!
鉴于这是一个 PHP 问题,那么下面推荐的 DOM 解析器听起来是最好的答案吗?想法?