📄 php_mnogo.c
字号:
} 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 + -