2014-04-07 19 views
0

我正在创建一个页面来显示新闻文章的列表。我想显示文本的前200个字符。我将数据存储在mySQL中。除了不显示文本的前200个字符外,每个人都可以工作。它显示约30个字符。我一直在查看我的代码很久,并尝试使用“rereplace”方法,但它不起作用。有人能给我提示缺少的东西吗?非常感谢!怎么没有显示文字的前200个字符?

<!DOCTYPE html> 
<html> 
<head> 
    <title>Almost done?</title> 
    <meta charset="UTF-8"> 
</head> 
<body> 
    <!--- Page Title ---> 
    <h3>Article Listings</h3> 

    <!--- Page Content ---> 
    <!--- Display article title, author, date, first 200 characters 
    of the article content and a link to view the full article ---> 
    <div align="left"> 
     <cfoutput query="myQuery1"> 
      <b><a href="full_article_view.cfm?ID=#article_ID#" style="color:##000000; text-decoration: none;">#ucase(myquery1.article_title)#</a></b> 
      <hr> 
      <p style="color:##848181; font-size:12px">#myquery1.article_author# :: #myquery1.article_date#</p> 
      <cfset nonhtml=reReplace(myquery1.article_content, "<[^>]*>","","ALL")> 
      #LEFT(nonhtml, 200)# ... <a href="full_article_view.cfm?ID=#article_ID#">Read More</a> 
      <br><br><br> 
     </cfoutput> 
    </div> 
</body> 
</html> 
+1

如果您的文本包含HTML,你在删除它,“CFSET nonhtml =”线。如果没有HTML,myquery1.article_content的内容可能已经少于200个字符了吗? –

+1

如有疑问,请查看您的数据。从article_content开始。看看它有多少个字符。然后看看nonhtml。如果它看起来至少有200个字符,则输出#len(left(nonhtml))#。如果它仍然是一个谜,请查看html源代码。也许角度支架导致某些东西被隐藏。 –

+0

@Dan Bracuk:谢谢你的提示。我刚刚检查了#len(left(nonhtml))#。它说200.我对冷气垫很陌生。我多次查看我的代码,但我仍然不确定代码中缺少什么。 – user2203774

回答

0

我尝试了你的代码,我得到了200个字符,但我用很长的文本和HTML的myquery1.article_content

首先,我会解决,这也更短的职位超过200个字符唐“T抛出一个错误:

<! --- ... ---> 
<cfset nonhtml=reReplace(myquery1.article_content, "<[^>]*>","","ALL")> 
<cfif len(nonhtml) GT 200> 
    #LEFT(nonhtml, 200)# ... <a href="full_article_view.cfm?ID=#article_ID#">Read More</a> 
<cfelse> 
    #nonhtml# 
</cfif> 

其次,我不喜欢这样的事实,那话是分离的,或者换句话说,一个句子就是一个字内中断。正因为如此,我建议使用此功能:顺便说一下http://www.cflib.org/udf.cfm/fullleft

:雷蒙德·卡姆登有一个很酷的article一下: