我想截断一些文本(从数据库或文本文件加载),但它包含HTML,因此包含标记,将返回更少的文本.这可能导致标签未被关闭或部分关闭(因此整洁可能无法正常工作且内容仍然较少).如何根据文本进行截断(当你到达表时可能会停止,因为这可能会导致更复杂的问题).
substr("Hello, my <strong>name</strong> is <em>Sam</em>. I´m a web developer.",0,26)."..."
Run Code Online (Sandbox Code Playgroud)
会导致:
Hello, my <strong>name</st...
Run Code Online (Sandbox Code Playgroud)
我想要的是:
Hello, my <strong>name</strong> is <em>Sam</em>. I´m...
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
虽然我的问题是如何在PHP中完成它,但是知道如何在C#中执行它会很好...或者应该没问题,因为我认为我可以将方法移植过来(除非它是内置的方法).
另请注意,我已经包含了一个HTML实体´- 必须将其视为单个字符(而不是本示例中的7个字符).
strip_tags 是一个后备,但我会失去格式和链接,它仍然会有HTML实体的问题.