rss값을 받아왔는데 제목에 <b>태그가 없어지질 않아서요
http://developer.naver.com/wiki/pages/Blog">http://developer.naver.com/wiki/pages/Blog 가운데 있는 샘플 URL 소스를 이용하여
http://www.kyoppong.com/bbs/board.php?bo_table=g74">http://www.kyoppong.com/bbs/board.php?bo_table=g74 게시판에서 제목을 뿌려주는데요
제목에 태그가 나오는데 그걸 안보이게 하려는데 도저히 찾을수가 없어서요ㅡㅡ
아예 태그안나오고 글씨만 보이던지, 아님 태그가 제대로 먹던지..둘중 하나만 되면 좋겠습니다.
사용중인 스킨의 list.skin.php 파일 혹은 rss_reader_lib 파일
둘중에 하나에서 처리해 주면 될거 같기도 한데..몇시간째 헤매고 있습니다.
도움좀 부탁 드립니다.ㅠㅠ
1) 리스트 파일에서 노출되는 부분은
=cut_str(get_text($item['title'],1), 120, "...")?> 했는데 적용이 안되구요
2)아무래도 아래 rss_reader_lib 파일 중 어딘가를 손대야 할거 같습니다.
--------------------------------------------------------------------------
// 버전 : 0.9.1 // 사이트 : http://lastrss.webdot.cz/">http://lastrss.webdot.cz/ // 라이센스 : GNU //======================================================================
class lastRSS { // ------------------------------------------------------------------- // Public properties // ------------------------------------------------------------------- var $default_cp = 'UTF-8'; var $CDATA = 'nochange'; var $cp = ''; var $items_limit = 0; var $stripHTML = False; var $date_format = '';
// ------------------------------------------------------------------- // Private variables // ------------------------------------------------------------------- var $channeltags = array ('title', 'link', 'description', 'language', 'copyright', 'managingEditor', 'webMaster', 'lastBuildDate', 'rating', 'docs'); var $itemtags = array('title', 'link', 'description', 'author', 'category', 'comments', 'enclosure', 'guid', 'pubDate', 'source'); var $imagetags = array('title', 'url', 'link', 'width', 'height'); var $textinputtags = array('title', 'description', 'name', 'link');
// ------------------------------------------------------------------- // Parse RSS file and returns associative array. // RSS 파일을 파싱하여 배열로 리턴시킴 // 인자 : rss url // 반환값 : 파싱된 결과값 // ------------------------------------------------------------------- function Get ($rss_url) { // If CACHE ENABLED if ($this->cache_dir != '') { $cache_file = $this->cache_dir . '/rsscache_' . md5($rss_url); $timedif = @(time() - filemtime($cache_file)); if ($timedif < $this->cache_time) { // cached file is fresh enough, return cached array $result = unserialize(join('', file($cache_file))); // set 'cached' to 1 only if cached file is correct if ($result) $result['cached'] = 1; } else { // cached file is too old, create new $result = $this->Parse($rss_url); $serialized = serialize($result); if ($f = @fopen($cache_file, 'w')) { fwrite ($f, $serialized, strlen($serialized)); fclose($f); } if ($result) $result['cached'] = 0; } } // If CACHE DISABLED >> load and parse the file directly else { $result = $this->Parse($rss_url); if ($result) $result['cached'] = 0; } // return result return $result; } // ------------------------------------------------------------------- // Modification of preg_match(); return trimed field with index 1 // from 'classic' preg_match() array output // ------------------------------------------------------------------- function my_preg_match ($pattern, $subject) { // start regullar expression preg_match($pattern, $subject, $out);
// if there is some result... process it and return it if(isset($out[1])) { // Process CDATA (if present) if ($this->CDATA == 'content') { // Get CDATA content (without CDATA tag) $out[1] = strtr($out[1], array(''', ']]>'=>'')); } elseif ($this->CDATA == 'strip') { // Strip CDATA $out[1] = strtr($out[1], array(''', ']]>'=>'')); }
// If code page is set convert character encoding to required if ($this->cp != '') //$out[1] = $this->MyConvertEncoding($this->rsscp, $this->cp, $out[1]); $out[1] = iconv($this->rsscp, $this->cp.'//TRANSLIT', $out[1]); // Return result return trim($out[1]); } else { // if there is NO result, return empty string return ''; } }
// ------------------------------------------------------------------- // Replace HTML entities &something; by real characters // HTML 소스정리 // ------------------------------------------------------------------- function unhtmlentities ($string) { // Get HTML entities table $trans_tbl = get_html_translation_table (HTML_ENTITIES, ENT_QUOTES); // Flip keys<==>values $trans_tbl = array_flip ($trans_tbl); // Add support for ' entity (missing in HTML_ENTITIES) $trans_tbl += array(''' => "'"); // Replace entities by values return strtr ($string, $trans_tbl); }
// ------------------------------------------------------------------- // Parse() is private method used by Get() to load and parse RSS file. // Don't use Parse() in your scripts - use Get($rss_file) instead. // 파서(Get에서호출됨) // ------------------------------------------------------------------- function Parse ($rss_url) { // Open and load RSS file if ($f = @fopen($rss_url, 'r')) { $rss_content = ''; while (!feof($f)) { $rss_content .= fgets($f, 4096); } fclose($f);
// Parse document encoding $result['encoding'] = $this->my_preg_match("'encoding=[\'\"](.*?)[\'\"]'si", $rss_content); // if document codepage is specified, use it if ($result['encoding'] != '') { $this->rsscp = $result['encoding']; } // This is used in my_preg_match() // otherwise use the default codepage else { $this->rsscp = $this->default_cp; } // This is used in my_preg_match()
// Parse CHANNEL info
preg_match("'
// Parse TEXTINPUT info
preg_match("'
$result['items_count'] = $i; return $result; } else // Error in opening return False { return False; } } }
?>
--------------------------------------------------------------------------
답변 3개
if ($this->stripHTML && $result['items'][$i]['title']){ $result['items'][$i]['title'] = strip_tags($this->unhtmlentities(strip_tags($result['items'][$i]['title'])));
$result['items'][$i]['title']=str_replace("","", $result['items'][$i]['title']);
}
이렇게 해보세요..
댓글을 작성하려면 로그인이 필요합니다.
devdev님 도움 감사드립니다
$result['items'][$i]['title'] = str_replace("","", $result['items'][$i]['title']);
그런데 제가 구문을 잘 몰라서...알려주신 구문을 rss_reader_lib파일중
임의의 자리에 넣으니 에러가 뜹니다
혹시, 어느 위치에 넣으면 되는지 알려주시면 감사드리겠습니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인