我正在尝试使用JS (更喜欢)或PHP来访问StackOverflow、Tumblr & Forrst等API,以便在我的博客中显示我的最新文章。因此,我需要一种方法来截断返回的HTML,使其适合“小部件”大小的空间。
我如何使用JS或PHP来实现它呢?它应该
我也在考虑去掉代码块或图像,否则可能不适合。但这是次要的
发布于 2011-02-20 10:15:12
嗯,正如我猜的那样,当您截断一段代码时,您应该小心不要在HTML情况下破坏它的工作,当然,如果您考虑保留这些代码块,请确保所有打开和结束标记保持不变。这将需要大量加载Reg的好代码,我怀疑用Jscript实现这个目标是一个好主意- PHP将是更快和更安全的方式.
另一方面,如果考虑删除所有代码块,那么首先使用PHP的striptag()函数,您可以将<img>作为第二个参数添加到其中,以保持IMG标记如下:
$clean = striptags( $incoming, "<img>" );然后截断代码,以确保没有破坏标记的">“字符。再一次,Reg将完成这一任务:只需使用Reg条件和前瞻性,-behinds就可以实现这个目标。
一旦您完成了标记,现在是时候确保您的多字节字符:使用截断而不受控制,可能会破坏多字节字符分裂的字节。要实现这一点,请尝试使用PHP的mb_substr()函数。在进行此截断时,您可能希望代码不将其中的其余HTML标记计数为字符--使用Reg,您可以使用占位符临时替换它们,一旦完成截断,将原始值放回。
所以,简单地说:它需要很好的PHP和一些编码,我担心这在这里很难发布。
发布于 2011-02-20 15:53:26
根据您的需要,您可能实际上根本不需要做任何截断。相反,您可能能够对放置HTML的容器进行样式化,并设置overflow: hidden;以防止它占用比您想要的空间更多的空间。
这样,您就知道您不会将一个单词切成两半(因为浏览器会很好地“包装”它),并且您知道您不会意外地破坏HTML代码,因为它仍然存在。
正如我所说,取决于您的特定需求,以及您要返回的特定HTML,这可能是一个选项,也可能不是一个选项。但我觉得至少值得考虑一下。
https://stackoverflow.com/questions/5056289
复制相似问题