2014-04-07 39 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一下: