2012-02-05 132 views
0

我在我的网站上有一个小型搜索引擎,用于存储在MySQL上的新闻。 这些新闻文章使用HTML格式:例如一个href,b,u等......如何阻止HTML流出我的div?

当我搜索一篇文章时,我只做了前100个字符的显示,就像在预览中一样。 但是,一些文章在宣布关闭HTML标签之前停止。

由于HTML格式不正确,查看搜索结果时会产生混乱。

如何阻止HTML流出searchResults div?

我应该创建一个iFrame吗?

Lee。

+0

你告诉超过100个字符是从第101显示在搜索结果和性格向前流出你的师?如果是这样,请使用该部门的“溢出:滚动”。将其应用于“style”属性。 – Vikas 2012-02-05 06:20:00

+0

仅显示100,仅此而已。 但是很长的HTML代码(链接img和链接)被截断。 – leechyeah 2012-02-05 06:22:28

+0

我很抱歉哥们。但是你的问题很混乱。你在谈论什么“长HTML代码”?你想显示“HTML字符”?请更清楚,以便我们可以帮助你。 – Vikas 2012-02-05 06:30:54

回答

1

我建议插入整个文章到您的DOM(动态获取,以便不减缓页面加载时间),并使用CSS overflow属性截断它,只要你喜欢。这也将允许您执行诸如在悬停上显示(更多)完整预览等内容。

截断是显示层的一个问题 - 概念上,预览仅限于预览框的大小。所以你不应该在模型层应用它。

大多数人通过其他方式实现这些预览其他方式通过手动书面摘要或不允许任意HTML(BBCode是流行的)。

另一种选择是在截断之前真正地解析文章,并且与它保持一致以保持页面的格式良好。

是的,frame理论上是一种选择。

+0

谢谢,我用CSS溢出:滚动 – leechyeah 2012-02-05 06:36:26

0

如果我明白你有问题,而不是100个字符的预览,你会得到100个HTML标签的字符?

我会为预览去掉所有标记(A HREF等),像这样:

<?php 
    $preview = '<h1>This is a title</h1><b>Hello</b> this is a result from search'; 
    echo strip_tags($preview); 
?> 

结果只会是干净的文本,无需HTML。

这是一个标题你好,这是从搜索结果

参考:http://php.net/manual/en/function.strip-tags.php

+0

感谢您的回复, 我用css overflow:scroll;代替。 问题是: 的限制是100个字符,所以很长的HTML链接占用了大部分的限制,有些甚至砍成一半,例如: leechyeah 2012-02-05 06:38:44