2012-01-05 7 views
1

내가 형식의 트위터 피드가 (트위터 피드를 구문 분석) // 부품과 #hashtags?ColdFusion에서 REReplace에이

<cfset feedurl="http://twitter.com/statuses/user_timeline/MyUserID.rss" /> 
    <cffeed 
     source="#feedurl#" 
     properties="feedmeta" 
     query="feeditems" /> 
    <cffeed 
    source="#feedurl#" 
    properties="feedmeta" 
    query="feeditems" /> 
<ul> 
    <cfoutput query="feeditems"> 
     <cfsavecontent variable="twitterString"> 
     #content# 
     </cfsavecontent> 
     <li>#REReplace(twitterString, "UserName: ", "")#</li> 
    </cfoutput> 
</ul> 

답변

1

이 나를 위해 일한 : 당신은 분명히 "URL"과 "해시 태그"클래스 스타일을 제공해야합니다

<cfset feedurl="http://twitter.com/statuses/user_timeline/jakefeasel.rss" /> 
    <cffeed 
     source="#feedurl#" 
     properties="feedmeta" 
     query="feeditems" /> 
    <cffeed 
    source="#feedurl#" 
    properties="feedmeta" 
    query="feeditems" /> 
<ul> 
    <cfoutput query="feeditems"> 

     <cfsavecontent variable="twitterString"> 
     #REReplace(content, "UserName: ", "")# 
     </cfsavecontent> 
     <cfset formattedString = twitterString> 

     <cfloop array='#[{"regex" = 'http://\S+', "class" = "URL"}, {"regex" = "##\w+", "class" = "hashTag"}]#' index="regexStruct"> 
      <cfset currentPos = 0> 
      <cfset matches = ReFindNoCase(regexStruct.regex, twitterString, currentPos, true)> 
      <cfloop condition="matches.len[1] IS NOT 0"> 
       <cfset formattedString = Replace(formattedString, mid(twitterString, matches.pos[1], matches.len[1]), "<span class='#regexStruct.class#'>" & mid(twitterString, matches.pos[1], matches.len[1]) & "</span>")> 

       <cfset currentPos = matches.pos[1] + matches.len[1]> 
       <cfset matches = ReFindNoCase(regexStruct.regex, twitterString, currentPos, true)> 
      </cfloop> 
     </cfloop> 

     <li> 
      #formattedString# 
     </li> 
    </cfoutput> 
</ul> 

여기에 내 현재의 ColdFusion 코드입니다.