char* str_replace( const char* str, const char* needle1, const char* needle2 ){

		char* var;
		char* tmp_pos;
		char* needle_pos;
		
		int count;
		int len;
		
		/* ¿øº» ¹®ÀÚ¿­º¸´Ù ¹Ù²Ù·Á´Â ¹®ÀÚ¿­ÀÌ ±ä °æ¿ì.. °¹¼ö¸¦ ¼¼¼­ ¸Þ¸ð¸® ÇÒ´ç-_- */
		if( strlen (needle1) < strlen (needle2) ){
		
			count = 0;
			tmp_pos = (char*)str;
			
			/* °³¼ö ¼¼±â.. */
			while( needle_pos = (char*) strcasestr( tmp_pos, needle1 ) ){
				
				tmp_pos = needle_pos + strlen (needle1);
				count++;
				
			}
			len = strlen(str) + (strlen(needle2) - strlen(needle1)) * count;
			var = (char*) g_malloc( sizeof(char) * (len + 1) );
			
		}	
		else {
			
			len = strlen(str);
			var = (char*) g_malloc( sizeof(char) * (len+1) );
			memset( var, 0, ( sizeof(char) * (len+1) ) );
			
		}
			
		/* Ä¡È¯ ½ÃÀÛ.. */
		tmp_pos = (char*) str;
		while( needle_pos = (char*)strcasestr( tmp_pos, needle1 ) ){
				
			len = needle_pos - tmp_pos;
				
			strncat( var, tmp_pos, len );
			strcat( var, needle2);
				
			tmp_pos = needle_pos + strlen (needle1);
					
		}
		strcat( var, tmp_pos );
		
		return var;

}

