테스트 사이트 - 개발 중인 베타 버전입니다

rss값을 받아왔는데 제목에 <b>태그가 없어지질 않아서요

양념게장 10년 전 조회 3,396

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) 리스트 파일에서 노출되는 부분은   

했는데 적용이 안되구요

 

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("'(.*?)'si", $rss_content, $out_channel);    foreach($this->channeltags as $channeltag)    {     $temp = $this->my_preg_match("'<$channeltag.*?>(.*?)'si", $out_channel[1]);     if ($temp != '') $result[$channeltag] = $temp; // Set only if not empty    }    // If date_format is specified and lastBuildDate is valid    if ($this->date_format != '' && ($timestamp = strtotime($result['lastBuildDate'])) !==-1) {       // convert lastBuildDate to specified date format       $result['lastBuildDate'] = date($this->date_format, $timestamp);    }

   // Parse TEXTINPUT info    preg_match("']*[^/])>(.*?)'si", $rss_content, $out_textinfo);     // This a little strange regexp means:     // Look for tag with or without any attributes, but skip truncated version (it's not beggining tag)    if (isset($out_textinfo[2])) {     foreach($this->textinputtags as $textinputtag) {      $temp = $this->my_preg_match("'<$textinputtag.*?>(.*?)'si", $out_textinfo[2]);      if ($temp != '') $result['textinput_'.$textinputtag] = $temp; // Set only if not empty     }    }    // Parse IMAGE info    preg_match("'(.*?)'si", $rss_content, $out_imageinfo);    if (isset($out_imageinfo[1])) {     foreach($this->imagetags as $imagetag) {      $temp = $this->my_preg_match("'<$imagetag.*?>(.*?)'si", $out_imageinfo[1]);      if ($temp != '') $result['image_'.$imagetag] = $temp; // Set only if not empty     }    }    // Parse ITEMS    preg_match_all("'(.*?)'si", $rss_content, $items);    $rss_items = $items[2];    $i = 0;    $result['items'] = array(); // create array even if there are no items    foreach($rss_items as $rss_item) {     // If number of items is lower then limit: Parse one item     if ($i < $this->items_limit || $this->items_limit == 0) {      foreach($this->itemtags as $itemtag) {       $temp = $this->my_preg_match("'<$itemtag.*?>(.*?)'si", $rss_item);       if ($temp != '') $result['items'][$i][$itemtag] = $temp; // Set only if not empty      }      // Strip HTML tags and other bullshit from DESCRIPTION      if ($this->stripHTML && $result['items'][$i]['description'])       $result['items'][$i]['description'] = strip_tags($this->unhtmlentities(strip_tags($result['items'][$i]['description'])));       //Strip HTML tags and other bullshit from TITLE      if ($this->stripHTML && $result['items'][$i]['title'])       $result['items'][$i]['title'] = strip_tags($this->unhtmlentities(strip_tags($result['items'][$i]['title'])));      // If date_format is specified and pubDate is valid      if ($this->date_format != '' && ($timestamp = strtotime($result['items'][$i]['pubDate'])) !==-1) {       // convert pubDate to specified date format       $result['items'][$i]['pubDate'] = date($this->date_format, $timestamp);      }      // Item counter      $i++;     }    }

   $result['items_count'] = $i;    return $result;   }   else // Error in opening return False   {    return False;   }  } }

?> 

​--------------------------------------------------------------------------

 

 

 

 

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

d
10년 전

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']);

 

이렇게 해보세요..

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

10년 전

devdev님 도움 감사드립니다

 $result['items'][$i]['title'] = str_replace("","", $result['items'][$i]['title']);

그런데 제가 구문을 잘 몰라서...알려주신 구문을 rss_reader_lib파일중

임의의 자리에 넣으니 에러가 뜹니다

혹시, 어느 위치에 넣으면 되는지 알려주시면 감사드리겠습니다. 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

d
10년 전

 $result['items'][$i]['title']=str_replace("","", $result['items'][$i]['title');

한줄 추가 하시면 될듯

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인

© 2025 SIRSOFT. All rights reserved.