Á¶°¢ ÄÚµå : HTML ű×Á¦°Å±â
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®
ÇöÀçÀ§Ä¡ : Code>C>tag_strip



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.

HTML Äڵ带 Á¦°ÅÇÏ´Â °£´ÜÇÑ ÄÚµåÀÔ´Ï´Ù. <, >»çÀÌÀÇ ¸ðµç ¹®ÀÚ¸¦ Á¦°ÅÇÕ´Ï´Ù. ¸¸¾à #include <stdio.h>À̶ó´Â ¹®ÀÚ¿­ÀÌ ÁÖ¾îÁø´Ù¸é <stdio.h>´Â Á¦°Å°¡ µÉ°Ì´Ï´Ù.

 &¿Í °°Àº escape ¹®ÀÚ´Â &¸¦ ¸¸³­µÚ ´ÙÀ½ 10Ä­À̳»¿¡ ;ÀÌ ÀÖÀ¸¸é escape ¹®ÀÚ·Î ÆÇ´Ü Á¦°ÅÇÏ´Â ¹æ¹ýÀ» »ç¿ëÇß½À´Ï´Ù. ÇѸ¶µð·Î, À¥ÆäÀÌÁö Ãâ·Â°ú °ü·ÃµÈ ¸ðµçÃ¥ÀÓÀ» »ç¿ëÀÚ¿¡°Ô Áö¿ì´Â ÇÁ·Î±×·¥ÀÔ´Ï´Ù.

¾Æ·¡ÀÇ ÇÁ·Î±×·¥Àº ÂÞ¿í »ý°¢À» ³ª¿­ÇÏ´Â ½ÄÀ¸·Î ÀÛ¼ºÀÌ µÇ¾ú½À´Ï´Ù. ÀÌ·¸°Ô ÀÛ¼ºÇѵ¥¿¡´Â ¾Æ·¡ÀÇ Äڵ带 ¸®ÆåÅ丵°ú ¼º´ÉÇâ»óÀ» À§ÇÑ ¿¹Á¦·Î »ç¿ëÇϱâ À§ÇÔÀÔ´Ï´Ù. ÀÌ¿Í °ü·ÃµÇ¾î¼­´Â º°µµÀÇ ¹®¼­¸¦ ÀÛ¼ºÇÒ °èȹÀÔ´Ï´Ù. ¸®ÆåÅ丮 ÀüÀÇ ÄÚµåÀ̹ǷΠVersion 0.1·Î ÇϰڽÀ´Ï´Ù.

tag_strip Version 0.1

#include <stdio.h> 
#include <sys/types.h> 
#include <string.h> 
#include <unistd.h> 
#include <fcntl.h> 
#include <sys/stat.h> 
 
using namespace std; 
 
enum tag_token {TAG_LT = '<', TAG_GT='>'}; 
int main(int argc, char **argv) 
{ 
  int fd; 
  int readn; 
  int ridx; 
  int widx; 
  char rbuf[1024] = {0x00,}; 
  char wbuf[1024] = {0x00,}; 
  int lt_flag = 0; 
 
  // used tokenizing 
  char seps[] = "()|{}, \t.;&-[]\"\'"; 
  char *tr; 
 
 
  int tag_status = 0; 
  int offset = 0; 
 
  if (argc != 2) 
  { 
    fprintf(stderr, "Usage : %s [file]\n", argv[0]); 
    return 1; 
  } 
  if ((fd = open(argv[1], O_RDONLY)) < 0) 
  { 
    return 1; 
  } 
 
  while ((readn = read(fd, rbuf+offset, 1023)) > 0) 
  { 
    ridx = 0; 
    widx = 0; 
    while(ridx < readn) 
    { 
      if (rbuf[ridx] == TAG_LT) 
      { 
        lt_flag++; 
      } 
      if (rbuf[ridx] == TAG_GT) 
      { 
        lt_flag--; 
        if (lt_flag == 0) 
        { 
          ridx++; 
          continue; 
        } 
      } 
 
      if (lt_flag == 1) 
      { 
        ridx++; 
        continue; 
      } 
 
      // Special Chracter Á¦°Å 
      if (rbuf[ridx] == '&') 
      { 
         int i =0; 
         char special[10] = {0x00,}; 
         for(i = 0; i < 10; i++) 
         { 
           if (rbuf[ridx+i] == ';') 
           { 
             ridx = (ridx+i); 
             break; 
           } 
         } 
      } 
 
      if (rbuf[ridx] == '\n' || rbuf[ridx] == '\r') 
        wbuf[widx] = ' '; 
      else 
        wbuf[widx] = rbuf[ridx]; 
 
      widx++; 
      ridx++; 
    } 
    tr = strtok(wbuf, seps); 
    while (tr != NULL) 
    { 
        printf("%s ", tr); 
        tr = strtok(NULL, seps); 
    } 
    memset(rbuf, 0x00, 1024); 
    memset(wbuf, 0x00, 1024); 
  } 
  return 0; 
} 
 


Name:  

EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.