我想截断一些文本(从数据库或文本文件加载),但它包含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实体的问题.
我有一个字符串可能看起来像这样
$str = "<p>Me & Mrs Jones <br /> live in <strong style="color:#FFF;">España</strong></p>";
htmlentities($str,ENT_COMPAT,'UTF-8',false);
Run Code Online (Sandbox Code Playgroud)
如何在不转换HTML标记的情况下将文本转换为HTML实体?
注意:我需要保持HTML完好无损