ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.
Á¦ ÄÚµù½ºÅ¸ÀÏÀº .. ÁÖº¯¿¡ Àִ°ŠÀß °¡Á®´Ù°¡ ´öÁö ´öÁö ¸¸µé¾î¼ µ¹¾Æ°¡°Ô ¸¸µå´Â°Í ÀÔ´Ï´Ù. -.-;; ¿ì¼±Àº ¿øÇϰíÀÚ ÇÏ´Â°Ô Àß µÇ´ÂÁö¸¦ ºü¸£°Ô È®ÀÎÇÏ´Â°É ¸ñÀûÀ¸·Î ÇÕ´Ï´Ù. ±×·¡¼ Ãʱâ ÄÚµå´Â °ÅÀÇ »À´ëÄÚµåÁ¤µµ·Î ´ëÃæ? µ¹¾Æ°¡°Ô ¸¸µé°í, ±× ÈÄ¿¡ ¿¡·¯/¿¹¿Üó¸® ±â´ÉÃß°¡¿Í ÄÚµå´Ùµë±â µîÀ» ÇÕ´Ï´Ù.
µü ÀÌ·± ½ºÅ¸ÀÏÀÌÁÒ. ![]()
À̹ø ÆÀºíÀ» À§Çؼ °¡Á®´Ù ¾´°Ç planet ÀÔ´Ï´Ù. ±×·¯³ª planetÀÌ RSSÀÇ ¸ñ·ÏÀ» ÀúÀåÇÏÁö ¸øÇÏ´Â °ü°è·Î, RSS¸ñ·ÏÀ» ÀúÀåÇϱâ À§ÇÑ º°µµÀÇ php½ºÅ©¸³Æ®¿Í C ÇÁ·Î±×·¥À» ÀÛ¼ºÇß½À´Ï´Ù.
planet´Â ´ÙÇàÈ÷µµ ¼öÁýÇÑ RSS Á¤º¸¸¦ DB ÇüÅ·ΠÀúÀåÀ» Çϰí, ÀúÀåµÈ Á¤º¸¸¦ ¾ò¾î¿À±â À§ÇÑ python ÇÁ·Î±×·¥À» Á¦°øÇÕ´Ï´Ù. C ÇÁ·Î±×·¥Àº popen(3)À» ÀÌ¿ëÇØ¼ python ÇÁ·Î±×·¥À» È£ÃâÇÏ°í ±× °á°ú°ªÀ» ½Ã°£¼øÀ¸·Î Á¤·ÄÇØ¼ ÆÄÀÏ·Î ÀúÀåÇÕ´Ï´Ù. ÆÄÀÏ·Î ÀúÀåµÈ°Ç php½ºÅ©¸³Æ®¸¦ ÀÌ¿ëÇØ¼ mysql DB¿¡ Áý¾î ³Öµµ·Ï Çß½À´Ï´Ù. CÇÁ·Î±×·¥¿¡¼ Mysql API¸¦ Á÷Á¢ È£ÃâÇØ¼ Çѹø¿¡ ³¡³¾ ¼öµµ ÀÖ°ÚÀ¸³ª ÀúÀÇ °¡´ÉÇÑ ÆíÇÑ ¹æ¹ýÀ¸·Î Á¶ÇÕÇØ¼ ¹®Á¦¸¦ ÇØ°áÇÏÀÚ¶ó´Â öÇп¡ ¸ÂÃß¾î¼, DB󸮰¡ ºñ±³Àû ½¬¿î PHP¸¦ ÀÌ¿ëÇß½À´Ï´Ù.
´ÙÀ½Àº C ÇÁ·Î±×·¥ ÄÚµå ÀÔ´Ï´Ù. ¿¡·¯ ó¸®? ¿¹¿Ü ó¸®? ¾Æ¹« °Íµµ ¾øÀÌ µ¹¾Æ°¡´Â°Ô È®ÀεǴ ¼öÁØÀÇ ÇÁ·Î±×·¥ÀÔ´Ï´Ù. STLÀ» ºñ·ÔÇØ¼ ¿Â°® Àâ´ÙÇÑ°É °¡Á®´Ù ºÙ¿´±º¿ä.
#include <stdio.h> #include <map> #include <vector> #include <string> #include <string.h> #include <dirent.h> #include <sys/types.h> #include <libgen.h> using namespace std; // RSS ij½¬ÆÄÀÏÀÇ ¸ñ·ÏÀ» ¾ò¾î¿Â´Ù. vector<string> getCache() { struct dirent *item; DIR *dp; vector<string> rtv; dp = opendir("/usr/planet/cache"); if (dp != NULL) { for(;;) { item = readdir(dp); if (item == NULL) break; // ¿ì¼±Àº joinc ÆÀºí·Î±×¿¡¼ ¹ßÇàµÈ, RSS ij½¬¸¸ Àеµ·Ï Çß½À´Ï´Ù. if(strstr(item->d_name, "teamblog.joinc.co.kr") != NULL) rtv.push_back(item->d_name); } closedir(dp); } return rtv; } // ½Ã°£¼øÀ¸·Î Á¤·ÄÇØ¼ DB¿¡ ÀúÀåÇϱâ À§ÇÔÀ¸·Î, map ¿¡¼ È£ÃâµÉ °Ì´Ï´Ù. // »ç½Ç Mysql¿¡ ÀúÀåµÉÅ×´Ï ±»ÀÌ ½Ã°£¼øÀ¸·Î Á¤·ÄÇÒ Çʿ䵵 ¾ø°ÚÁö¸¸¿ä. struct ltstr { bool operator()(const int s1, const int s2) const { return s1 > s2; } }; struct Item { char id[80]; char channel[80]; }; int main(int argc, char **argv) { map<int, Item, ltstr> keymap; map<int, Item, ltstr>::iterator mi; vector<string> cache; FILE *fp; char buf[1024]; char key[80], value[80]; char command[256]; Item lItem; cache = getCache(); // Cache ÆÄÀÏÀÇ ¸ñ·Ï¸¸Å ·çÇÁ¸¦ µ¹¸é¼, // Á¦°øµÈ python ½ºÅ©¸³Æ®¸¦ ÀÌ¿ëÇØ¼ RSS ä³Î Á¤º¸¸¦ ¾ò¾î¿É´Ï´Ù. for (int i = 0; i < cache.size(); i++) { int first = 0; sprintf(command,"/usr/bin/planet-cache.py -L /usr/planet/cache/%s", cache[i].c_str()); fp = popen(command, "r"); if (fp == NULL) { perror("Error"); } while(fgets(buf, 1024, fp) != NULL) { if (first != 0) { sscanf(buf, "%s%s", value, key); memset((void *)&lItem, 0x00, sizeof(Item)); sprintf(lItem.id, "%s", value); sprintf(lItem.channel, "%s", cache[i].c_str()); keymap[atoi(key)] = lItem; } first = 1; } pclose(fp); } mi = keymap.begin(); string channel; char *dftdir = "/usr/planet/cache"; // ¾ò¾î¿Â ä³ÎÁ¤º¸¸¦ ÀÌ¿ëÇØ¼ // °¢ ä³ÎÀÇ Æ÷½ºÆ®ÀÇ ¼¼ºÎÁ¤º¸¸¦ ¾ò¾î¿É´Ï´Ù. // popenÀ¸·Î È£ÃâÇߴµ¥, playnet-cache.py ¸¦ ¾à°£ ¼öÁ¤Çؼ, ÇØ¼®Çϱâ ÁÁÀº °á°ú¹°À» Ãâ·ÂÇϵµ·Ï Çß½À´Ï´Ù. while(mi != keymap.end()) { channel = mi->second.channel; sprintf(command,"/usr/local/bin/planet-cache.py -I %s/%s %s", dftdir, mi->second.channel, mi->second.id); fp = popen(command, "r"); if (fp == NULL) { perror("Error"); } memset(buf, 0x00, 1024); while(fgets(buf, 1023, fp) != NULL) { printf("%s", buf); memset(buf, 0x00, 1024); } printf("\tchannel\t%s\n", mi->second.channel); // §.. php·Î Æ÷½ºÆ®°£ ±¸º°À» ½±°ÔÇϵµ·Ï Çϱâ À§ÇÑ ±¸ºÐ¹®ÀÚ¿ ÀÔ´Ï´Ù. // ¾ÆÁÖ ¹«½ÄÇÑ ¹æ¹ýÀÌÁÒ. printf("-------------------------------------::\n\n"); pclose(fp); *mi++; } }
ÀÌ·¸°Ô ÇØ¼, ÆÄÀÏ·Î ÀúÀåµÇ¸é php ½ºÅ©¸³Æ®¸¦ ÀÌ¿ëÇØ¼ DB¿¡ ³Ö°í »ç¿ëÀÚ°¡ ¹æ¹®Çϸé ÀоîµéÀÔ´Ï´Ù. DB´Â ´ÙÀ½°ú °°½À´Ï´Ù.
+----------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+--------------+------+-----+---------+-------+ | id | varchar(80) | | PRI | | | | channel | varchar(255) | YES | | NULL | | | date | int(11) | YES | | NULL | | | author | varchar(24) | YES | | NULL | | | comments | text | YES | | NULL | | | content | text | YES | | NULL | | | link | varchar(255) | YES | | NULL | | | summary | text | YES | | NULL | | | title | varchar(255) | YES | | NULL | | | udate | int(11) | YES | | NULL | | +----------+--------------+------+-----+---------+-------+
|
|
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|