⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 php_mnogo.c

📁 php-4.4.7学习linux时下载的源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
			} else UdmSynonymListSort(&(Agent->Conf->Synonyms));#else			} else UdmSynonymListSort(&(Agent->Conf->SynList));#endif						break;					case UDM_PARAM_SEARCHD:#if UDM_VERSION_ID <= 30203			UdmSDCLientListAdd(&(Agent->Conf->sdcl),val);			{				size_t i;				for(i=0;i<Agent->Conf->sdcl.nclients;i++){					UdmSDCLientListAdd(&Agent->sdcl,Agent->Conf->sdcl.Clients[i].addr);				}			}#endif						break;		case UDM_PARAM_QSTRING:#if UDM_VERSION_ID >= 30204			UdmVarListReplaceStr(&Agent->Conf->Vars,"QUERY_STRING",val);#else			UdmReplaceStrVar(Agent->Conf->vars,"QUERY_STRING",val,UDM_VARSRC_GLOBAL);#endif						break;		case UDM_PARAM_REMOTE_ADDR:#if UDM_VERSION_ID >= 30204			UdmVarListReplaceStr(&Agent->Conf->Vars,"IP",val);#else			UdmReplaceStrVar(Agent->Conf->vars,"IP",val,UDM_VARSRC_GLOBAL);#endif						break;			#endif					case UDM_PARAM_STOPTABLE:#if UDM_VERSION_ID < 30200											strcat(Agent->Conf->stop_tables," ");			strcat(Agent->Conf->stop_tables,val);#endif			break;		case UDM_PARAM_STOPFILE: #if UDM_VERSION_ID >= 30204			if (UdmStopListLoad(Agent->Conf,val)) {#else			if (UdmFileLoadStopList(Agent->Conf,val)) {#endif				php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", Agent->Conf->errstr);				RETURN_FALSE;			}			break;					case UDM_PARAM_WEIGHT_FACTOR: #if UDM_VERSION_ID < 30200													Agent->weight_factor=strdup(val);#elif UDM_VERSION_ID >= 30204			UdmVarListReplaceStr(&Agent->Conf->Vars,"wf",val);#else			UdmReplaceStrVar(Agent->Conf->vars,"wf",val,UDM_VARSRC_GLOBAL);			{				size_t len;			                len=strlen(val);				if((len>0)&&(len<256)){				    const char *sec;				    int sn;								    for(sn=0;sn<256;sn++){					    Agent->wf[sn]=0;				    }								    for(sec=val+len-1;sec>=val;sec--){					    Agent->wf[len-(sec-val)]=UdmHex2Int(*sec);	                	    }        			}                                                          						}#endif			    			break;					case UDM_PARAM_MIN_WORD_LEN: #if UDM_VERSION_ID >= 30204			Agent->Conf->WordParam.min_word_len=atoi(val);#else			Agent->Conf->min_word_len=atoi(val);#endif			    			break;					case UDM_PARAM_MAX_WORD_LEN: #if UDM_VERSION_ID >= 30204			Agent->Conf->WordParam.max_word_len=atoi(val);#else			Agent->Conf->max_word_len=atoi(val);#endif			    			break;					case UDM_PARAM_CROSS_WORDS: 			switch (atoi(val)){				case UDM_ENABLED:#if UDM_VERSION_ID >= 30204					UdmVarListReplaceStr(&Agent->Conf->Vars,"CrossWords","yes");#else					Agent->Conf->use_crossword=UDM_ENABLED;#endif					break;									case UDM_DISABLED:#if UDM_VERSION_ID >= 30204					UdmVarListReplaceStr(&Agent->Conf->Vars,"CrossWords","no");#else					Agent->Conf->use_crossword=UDM_DISABLED;#endif					break;									default:					php_error_docref(NULL TSRMLS_CC, E_WARNING,"Unknown crosswords mode");					RETURN_FALSE;					break;			}						break;#if UDM_VERSION_ID > 30112		case UDM_PARAM_VARDIR:#if UDM_VERSION_ID < 30200			udm_snprintf(Agent->Conf->vardir,sizeof(Agent->Conf->vardir)-1,"%s%s",val,UDMSLASHSTR);#elif UDM_VERSION_ID >= 30208			UdmVarListReplaceStr(&Agent->Conf->Vars,"Vardir",val);#elif UDM_VERSION_ID >= 30204			UdmVarListReplaceStr(&Agent->Conf->Vars,"Vardir",val);			snprintf(Agent->Conf->vardir,sizeof(Agent->Conf->vardir)-1,"%s%s",val,UDMSLASHSTR);#else						snprintf(Agent->Conf->vardir,sizeof(Agent->Conf->vardir)-1,"%s%s",val,UDMSLASHSTR);#endif						break;#endif			#if UDM_VERSION_ID >= 30204		case UDM_PARAM_QUERY:			UdmVarListReplaceStr(&Agent->Conf->Vars,"q",val);			break;		case UDM_PARAM_STORED:			UdmVarListReplaceStr(&Agent->Conf->Vars,"StoredAddr",val);			break;#endif			#if UDM_VERSION_ID >= 30207		case UDM_PARAM_GROUPBYSITE: 			switch (atoi(val)){				case UDM_ENABLED:					UdmVarListReplaceStr(&Agent->Conf->Vars,"GroupBySite","yes");										break;									case UDM_DISABLED:					UdmVarListReplaceStr(&Agent->Conf->Vars,"GroupBySite","no");					break;									default:					php_error_docref(NULL TSRMLS_CC, E_WARNING,"Unknown groupbysite mode");					RETURN_FALSE;					break;			}						break;					case UDM_PARAM_SITEID: 			UdmVarListReplaceStr(&Agent->Conf->Vars,"site",val);					break;		case UDM_PARAM_DETECT_CLONES: 			switch (atoi(val)){				case UDM_ENABLED:					UdmVarListReplaceStr(&Agent->Conf->Vars,"DetectClones","yes");										break;									case UDM_DISABLED:					UdmVarListReplaceStr(&Agent->Conf->Vars,"DetectClones","no");					break;									default:					php_error_docref(NULL TSRMLS_CC, E_WARNING,"Unknown clones mode");					RETURN_FALSE;					break;			}						break;#endif#if UDM_VERSION_ID >= 30214		case UDM_PARAM_SORT_ORDER: 			UdmVarListReplaceStr(&Agent->Conf->Vars,"s",val);					break;#endif#if UDM_VERSION_ID >= 30215		case UDM_PARAM_RESULTS_LIMIT: 			UdmVarListReplaceStr(&Agent->Conf->Vars,"ResultsLimit",val);					break;#endif#if UDM_VERSION_ID >= 30216		case UDM_PARAM_EXCERPT_SIZE: 			UdmVarListReplaceStr(&Agent->Conf->Vars,"ExcerptSize",val);					break;		case UDM_PARAM_EXCERPT_PADDING: 			UdmVarListReplaceStr(&Agent->Conf->Vars,"ExcerptPadding",val);					break;#endif		default:			php_error_docref(NULL TSRMLS_CC, E_WARNING,"Unknown agent session parameter");			RETURN_FALSE;			break;	}	RETURN_TRUE;}/* }}} *//* {{{ proto int udm_load_ispell_data(int agent, int var, string val1, [string charset], string val2, int flag)   Load ispell data */DLEXPORT PHP_FUNCTION(udm_load_ispell_data){	pval **yyagent, **yyvar, **yyval1, **yyval2, **yyflag, **yycharset ;	char *val1, *val2, *charset;	int var, flag;	UDM_AGENT * Agent;	switch(ZEND_NUM_ARGS()){			case 5: 					if(zend_get_parameters_ex(5,&yyagent,&yyvar,&yyval1,&yyval2,&yyflag)==FAILURE){				RETURN_FALSE;			}			convert_to_long_ex(yyvar);			convert_to_long_ex(yyflag);			convert_to_string_ex(yyval1);			convert_to_string_ex(yyval2);			ZEND_FETCH_RESOURCE(Agent, UDM_AGENT *, yyagent, -1, "mnoGoSearch-agent", le_link);			var  = Z_LVAL_PP(yyvar);			flag = Z_LVAL_PP(yyflag);			val1 = Z_STRVAL_PP(yyval1);			val2 = Z_STRVAL_PP(yyval2);			charset = "us-ascii";						break;		case 6: 					if(zend_get_parameters_ex(6,&yyagent,&yyvar,&yyval1,&yycharset,&yyval2,&yyflag)==FAILURE){				RETURN_FALSE;			}			convert_to_long_ex(yyvar);			convert_to_long_ex(yyflag);			convert_to_string_ex(yyval1);			convert_to_string_ex(yyval2);			convert_to_string_ex(yycharset);			ZEND_FETCH_RESOURCE(Agent, UDM_AGENT *, yyagent, -1, "mnoGoSearch-agent", le_link);			var  = Z_LVAL_PP(yyvar);			flag = Z_LVAL_PP(yyflag);			val1 = Z_STRVAL_PP(yyval1);			val2 = Z_STRVAL_PP(yyval2);			charset = Z_STRVAL_PP(yycharset);						break;					default:			WRONG_PARAM_COUNT;			break;	}	switch(var){#if UDM_VERSION_ID < 30200				case UDM_ISPELL_TYPE_DB: 			Agent->Conf->ispell_mode |= UDM_ISPELL_MODE_DB;						if (UdmDBImportAffixes(Agent,Agent->charset) || 			    UdmImportDictionaryFromDB(Agent)) {				RETURN_FALSE;			} 												break;			#if UDM_VERSION_ID > 30111		case UDM_ISPELL_TYPE_SERVER:			Agent->Conf->ispell_mode &= ~UDM_ISPELL_MODE_DB;			Agent->Conf->ispell_mode |=  UDM_ISPELL_MODE_SERVER;						Agent->Conf->spellhost = strdup(val1);					break;			#endif			#endif		case UDM_ISPELL_TYPE_AFFIX: #if UDM_VERSION_ID < 30200					Agent->Conf->ispell_mode &= ~UDM_ISPELL_MODE_DB;#if UDM_VERSION_ID > 30111			Agent->Conf->ispell_mode &= ~UDM_ISPELL_MODE_SERVER;#endif						if (UdmImportAffixes(Agent->Conf,val1,val2,NULL,0)) {				php_error_docref(NULL TSRMLS_CC, E_WARNING,"Cannot load affix file %s",val2);				RETURN_FALSE;			}#else			if (UdmImportAffixes(Agent->Conf,val1,charset,val2)) {				php_error_docref(NULL TSRMLS_CC, E_WARNING,"Cannot load affix file %s",val2);				RETURN_FALSE;			}    #endif			break;					case UDM_ISPELL_TYPE_SPELL: #if UDM_VERSION_ID < 30200							Agent->Conf->ispell_mode &= ~UDM_ISPELL_MODE_DB;			#if UDM_VERSION_ID > 30111			Agent->Conf->ispell_mode &= ~UDM_ISPELL_MODE_SERVER;#endif						if (UdmImportDictionary(Agent->Conf,val1,val2,1,"")) {				php_error_docref(NULL TSRMLS_CC, E_WARNING,"Cannot load spell file %s",val2);				RETURN_FALSE;			}#else			if (UdmImportDictionary(Agent->Conf,val1,charset,val2,0,"")) {				php_error_docref(NULL TSRMLS_CC, E_WARNING,"Cannot load spell file %s",val2);				RETURN_FALSE;			}#endif			break;		default:			php_error_docref(NULL TSRMLS_CC, E_WARNING,"Unknown ispell type parameter");			RETURN_FALSE;			break;	}		if (flag) {#if UDM_VERSION_ID >= 30204		if(Agent->Conf->Spells.nspell) {			UdmSortDictionary(&Agent->Conf->Spells);		  	UdmSortAffixes(&Agent->Conf->Affixes,&Agent->Conf->Spells);		}#else		if(Agent->Conf->nspell) {			UdmSortDictionary(Agent->Conf);		  	UdmSortAffixes(Agent->Conf);		}#endif	}		RETURN_TRUE;}/* }}} *//* {{{ proto int udm_free_ispell_data(int agent)   Free memory allocated for ispell data */DLEXPORT PHP_FUNCTION(udm_free_ispell_data){	pval ** yyagent;	UDM_AGENT * Agent;	switch(ZEND_NUM_ARGS()){		case 1: {				if (zend_get_parameters_ex(1, &yyagent)==FAILURE) {					RETURN_FALSE;				}			}			break;		default:			WRONG_PARAM_COUNT;			break;	}	ZEND_FETCH_RESOURCE(Agent, UDM_AGENT *, yyagent, -1, "mnoGoSearch-Agent", le_link);#if UDM_VERSION_ID >= 30204	UdmSpellListFree(&Agent->Conf->Spells);	UdmAffixListFree(&Agent->Conf->Affixes);#elif UDM_VERSION_ID > 30111	UdmFreeIspell(Agent->Conf);#endif		RETURN_TRUE;}/* }}} *//* {{{ proto int udm_add_search_limit(int agent, int var, string val)   Add mnoGoSearch search restrictions */DLEXPORT PHP_FUNCTION(udm_add_search_limit){	pval **yyagent, **yyvar, **yyval;	char *val;	int var;	UDM_AGENT * Agent;	switch(ZEND_NUM_ARGS()){			case 3: 					if(zend_get_parameters_ex(3,&yyagent,&yyvar,&yyval)==FAILURE){				RETURN_FALSE;			}			convert_to_long_ex(yyvar);			convert_to_string_ex(yyval);			ZEND_FETCH_RESOURCE(Agent, UDM_AGENT *, yyagent, -1, "mnoGoSearch-agent", le_link);			var = Z_LVAL_PP(yyvar);			val = Z_STRVAL_PP(yyval);						break;					default:			WRONG_PARAM_COUNT;			break;	}		switch(var){		case UDM_LIMIT_URL: #if UDM_VERSION_ID >= 30204						UdmVarListAddStr(&Agent->Conf->Vars,"ul",val);#else			UdmAddURLLimit(Agent->Conf,val);#endif					break;					case UDM_LIMIT_TAG: #if UDM_VERSION_ID >= 30204						UdmVarListAddStr(&Agent->Conf->Vars,"t",val);#else			UdmAddTagLimit(Agent->Conf,val);#endif					break;		case UDM_LIMIT_LANG: #if UDM_VERSION_ID >= 30204						UdmVarListAddStr(&Agent->Conf->Vars,"lang",val);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -