gluke Tue Jan 30 04:54:11 2001 EDT Added files: /php4/ext/mnogosearch Makefile.in README config.m4 php_mnogo.c php_mnogo.h setup.stub test.php Log: mnoGoSearch extension module initial version has been added. This module currently at the alpha state, but it can be used already. @- mnoGoSearch extension module initial version has been added. @ This module currently at the alpha state, but it can be used already. # For details about mnoGoSearch please refer at http://search.mnogo.ru PR: Submitted by: Reviewed by: Obtained from:
Index: php4/ext/mnogosearch/Makefile.in +++ php4/ext/mnogosearch/Makefile.in LTLIBRARY_NAME = libmnogosearch.la LTLIBRARY_SOURCES = php_mnogo.c LTLIBRARY_SHARED_NAME = mnogosearch.la LTLIBRARY_SHARED_LIBADD = $(MNOGOSEARCH_SHARED_LIBADD) include $(top_srcdir)/build/dynlib.mk Index: php4/ext/mnogosearch/config.m4 +++ php4/ext/mnogosearch/config.m4 dnl $Id: config.m4,v 1.1 2001/01/30 12:53:50 gluke Exp $ PHP_ARG_WITH(mnogosearch,for mnoGoSearch support, [ --with-mnogosearch[=DIR] Include mnoGoSearch support. DIR is the mnoGoSearch base install directory, defaults to /usr/local/udmsearch.]) if test "$PHP_MNOGOSEARCH" != "no"; then if test "$PHP_MNOGOSEARCH" = "yes"; then MNOGOSEARCH_BINDIR=/usr/local/udmsearch/bin MNOGOSEARCH_INCDIR=/usr/local/udmsearch/include MNOGOSEARCH_LIBDIR=/usr/local/udmsearch/lib else MNOGOSEARCH_BINDIR=$PHP_MNOGOSEARCH/bin MNOGOSEARCH_INCDIR=$PHP_MNOGOSEARCH/include MNOGOSEARCH_LIBDIR=$PHP_MNOGOSEARCH/lib fi AC_ADD_INCLUDE($MNOGOSEARCH_INCDIR) if test -x "$MNOGOSEARCH_BINDIR/udm-config"; then PHP_EVAL_LIBLINE(`$MNOGOSEARCH_BINDIR/udm-config --libs`, MNOGOSEARCH_SHARED_LIBADD) else AC_ADD_LIBRARY_WITH_PATH(udmsearch, $MNOGOSEARCH_LIBDIR, MNOGOSEARCH_SHARED_LIBADD) fi AC_DEFINE(HAVE_MNOGOSEARCH,1,[ ]) PHP_SUBST(MNOGOSEARCH_SHARED_LIBADD) PHP_EXTENSION(mnogosearch,$ext_shared) fi Index: php4/ext/mnogosearch/php_mnogo.c +++ php4/ext/mnogosearch/php_mnogo.c /* +----------------------------------------------------------------------+ | PHP version 4.0 | +----------------------------------------------------------------------+ | Copyright (c) 1997, 1998, 1999, 2000 The PHP Group | +----------------------------------------------------------------------+ | This source file is subject to version 2.02 of the PHP license, | | that is bundled with this package in the file LICENSE, and is | | available at through the world-wide-web at | | http://www.php.net/license/2_02.txt. | | If you did not receive a copy of the PHP license and are unable to | | obtain it through the world-wide-web, please send a note to | | [EMAIL PROTECTED] so we can mail you a copy immediately. | +----------------------------------------------------------------------+ | Authors: | | Initial version by Alex Barkov <[EMAIL PROTECTED]> | | and Ramil Kalimullin <[EMAIL PROTECTED]> | | Further development by Sergey Kartashoff <[EMAIL PROTECTED]> | +----------------------------------------------------------------------+ */ /* $Id: php_mnogo.c,v 0.3 2001/01/27 15:30:00 */ #include "php.h" #include "php_mnogo.h" #include "ext/standard/php_standard.h" #include "ext/standard/info.h" #include "php_globals.h" #ifdef HAVE_MNOGOSEARCH #define UDM_FIELD_URLID 1 #define UDM_FIELD_URL 2 #define UDM_FIELD_CONTENT 4 #define UDM_FIELD_TITLE 8 #define UDM_FIELD_KEYWORDS 16 #define UDM_FIELD_DESC 32 #define UDM_FIELD_TEXT 64 #define UDM_FIELD_SIZE 128 #define UDM_FIELD_SCORE 256 #define UDM_FIELD_MODIFIED 512 #define UDM_PARAM_PAGE_SIZE 1 #define UDM_PARAM_PAGE_NUM 2 #define UDM_PARAM_SEARCH_MODE 4 #define UDM_PARAM_CHARSET 8 #define UDM_PARAM_NUM_ROWS 16 #define UDM_PARAM_FOUND 32 /* True globals, no need for thread safety */ static int le_link,le_res; #include <udmsearch.h> function_entry mnogosearch_functions[] = { PHP_FE(udm_alloc_agent, NULL) PHP_FE(udm_set_agent_param, NULL) PHP_FE(udm_free_agent, NULL) PHP_FE(udm_errno, NULL) PHP_FE(udm_error, NULL) PHP_FE(udm_find, NULL) PHP_FE(udm_free_res, NULL) PHP_FE(udm_get_res_field, NULL) PHP_FE(udm_get_res_param, NULL) {NULL, NULL, NULL} }; zend_module_entry mnogosearch_module_entry = { "mnogosearch", mnogosearch_functions, PHP_MINIT(mnogosearch), PHP_MSHUTDOWN(mnogosearch), PHP_RINIT(mnogosearch), NULL, PHP_MINFO(mnogosearch), STANDARD_MODULE_PROPERTIES }; #ifdef COMPILE_DL_MNOGOSEARCH ZEND_GET_MODULE(mnogosearch) #endif static void _free_udm_agent(zend_rsrc_list_entry *rsrc){ UDM_AGENT * Agent = (UDM_AGENT *)rsrc->ptr; UdmFreeAgent(Agent); } static void _free_udm_res(zend_rsrc_list_entry *rsrc){ UDM_RESULT * Res = (UDM_RESULT *)rsrc->ptr; UdmFreeResult(Res); } DLEXPORT PHP_MINIT_FUNCTION(mnogosearch) { UdmInit(); le_link = zend_register_list_destructors_ex(_free_udm_agent,NULL,"mnogosearch agent",module_number); le_res = zend_register_list_destructors_ex(_free_udm_res,NULL,"mnogosearch result",module_number); REGISTER_LONG_CONSTANT("UDM_FIELD_URLID", UDM_FIELD_URLID,CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("UDM_FIELD_URL", UDM_FIELD_URL,CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("UDM_FIELD_CONTENT",UDM_FIELD_CONTENT,CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("UDM_FIELD_TITLE", UDM_FIELD_TITLE,CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("UDM_FIELD_KEYWORDS",UDM_FIELD_KEYWORDS,CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("UDM_FIELD_DESC", UDM_FIELD_DESC,CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("UDM_FIELD_TEXT", UDM_FIELD_TEXT,CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("UDM_FIELD_SIZE", UDM_FIELD_SIZE,CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("UDM_FIELD_SCORE", UDM_FIELD_SCORE,CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("UDM_FIELD_MODIFIED",UDM_FIELD_MODIFIED,CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("UDM_PARAM_PAGE_SIZE",UDM_PARAM_PAGE_SIZE,CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("UDM_PARAM_PAGE_NUM",UDM_PARAM_PAGE_NUM,CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("UDM_PARAM_SEARCH_MODE",UDM_PARAM_SEARCH_MODE,CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("UDM_PARAM_CHARSET",UDM_PARAM_CHARSET,CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("UDM_PARAM_FOUND",UDM_PARAM_FOUND,CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("UDM_PARAM_NUM_ROWS",UDM_PARAM_NUM_ROWS,CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("UDM_MODE_ALL",UDM_MODE_ALL,CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("UDM_MODE_ANY",UDM_MODE_ANY,CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("UDM_MODE_BOOL",UDM_MODE_BOOL,CONST_CS | CONST_PERSISTENT); return SUCCESS; } DLEXPORT PHP_MSHUTDOWN_FUNCTION(mnogosearch) { return SUCCESS; } DLEXPORT PHP_RINIT_FUNCTION(mnogosearch) { return SUCCESS; } DLEXPORT PHP_MINFO_FUNCTION(mnogosearch) { php_info_print_table_start(); php_info_print_table_row(2, "mnoGoSearch Support", "enabled" ); php_info_print_table_end(); } /* {{{ proto int mnogosearch_alloc_agent(string dbaddr [, string dbmode]) Allocate mnoGoSearch session */ DLEXPORT PHP_FUNCTION(udm_alloc_agent) { switch(ZEND_NUM_ARGS()){ case 1: { pval **yydbaddr; char *dbaddr; UDM_ENV * Env; UDM_AGENT * Agent; if(zend_get_parameters_ex(1,&yydbaddr)==FAILURE){ RETURN_FALSE; } convert_to_string_ex(yydbaddr); dbaddr = (*yydbaddr)->value.str.val; Env=UdmAllocEnv(); UdmEnvSetDBAddr(Env,dbaddr); Agent=UdmAllocAgent(Env,0,UDM_OPEN_MODE_READ); ZEND_REGISTER_RESOURCE(return_value,Agent,le_link); } break; case 2: { pval **yydbaddr; pval **yydbmode; char *dbaddr; char *dbmode; UDM_ENV * Env; UDM_AGENT * Agent; if(zend_get_parameters_ex(2,&yydbaddr,&yydbmode)==FAILURE){ RETURN_FALSE; } convert_to_string_ex(yydbaddr); convert_to_string_ex(yydbmode); dbaddr = (*yydbaddr)->value.str.val; dbmode = (*yydbmode)->value.str.val; Env=UdmAllocEnv(); UdmEnvSetDBAddr(Env,dbaddr); UdmEnvSetDBMode(Env,dbmode); Agent=UdmAllocAgent(Env,0,UDM_OPEN_MODE_READ); ZEND_REGISTER_RESOURCE(return_value,Agent,le_link); } break; default: WRONG_PARAM_COUNT; break; } } /* }}} */ /* {{{ proto int udm_set_agent_param(agent,var,val) Set mnoGoSearch agent session parameters */ DLEXPORT PHP_FUNCTION(udm_set_agent_param) { 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 = (*yyvar)->value.lval; val = (*yyval)->value.str.val; } break; default: WRONG_PARAM_COUNT; break; } switch(var){ case UDM_PARAM_PAGE_SIZE: { Agent->page_size=atoi(val); if(Agent->page_size<1)Agent->page_size=20; } break; case UDM_PARAM_PAGE_NUM: { Agent->page_number=atoi(val); if(Agent->page_number<0)Agent->page_number=0; } break; case UDM_PARAM_SEARCH_MODE: { switch (atoi(val)){ case UDM_MODE_ALL: Agent->search_mode=UDM_MODE_ALL; break; case UDM_MODE_ANY: Agent->search_mode=UDM_MODE_ANY; break; case UDM_MODE_BOOL: Agent->search_mode=UDM_MODE_BOOL; break; default: RETURN_STRING("<Udm_Set_Agent_Param: Unknown search mode>",1); break; } } break; default: RETURN_STRING("<Udm_Set_Agent_Param: Unknown agent parameter>",1); break; } } /* }}} */ /* {{{ proto int udm_free_agent(int agent_identifier) Free mnoGoSearch session */ DLEXPORT PHP_FUNCTION(udm_free_agent) { pval ** yyagent; UDM_RESULT * 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_RESULT *, yyagent, -1, "mnoGoSearch-agent", le_link); zend_list_delete((*yyagent)->value.lval); } /* }}} */ /* {{{ proto int udm_find(int agent_identifier,string query) perform search */ DLEXPORT PHP_FUNCTION(udm_find) { pval ** yyquery, ** yyagent; UDM_RESULT * Res; UDM_AGENT * Agent; int id=-1; switch(ZEND_NUM_ARGS()){ case 2: { if (zend_get_parameters_ex(2, &yyagent,&yyquery)==FAILURE) { RETURN_FALSE; } } break; default: WRONG_PARAM_COUNT; break; } ZEND_FETCH_RESOURCE(Agent, UDM_AGENT *, yyagent, id, "mnoGoSearch-Agent", le_link); convert_to_string_ex(yyquery); Res=UdmFind(Agent,(*yyquery)->value.str.val); ZEND_REGISTER_RESOURCE(return_value,Res,le_res); } /* }}} */ /* {{{ proto int udm_get_res_field(int res_identifier,int row_num,const int field_name) Fetch mnoGoSearch result field */ DLEXPORT PHP_FUNCTION(udm_get_res_field){ pval **yyres, **yyrow_num, **yyfield_name; UDM_RESULT * Res; int row,field; switch(ZEND_NUM_ARGS()){ case 3: { if (zend_get_parameters_ex(3, &yyres,&yyrow_num,&yyfield_name)==FAILURE){ RETURN_FALSE; } convert_to_string_ex(yyrow_num); convert_to_string_ex(yyfield_name); field=atoi((*yyfield_name)->value.str.val); row=atoi((*yyrow_num)->value.str.val); } break; default: WRONG_PARAM_COUNT; break; } ZEND_FETCH_RESOURCE(Res, UDM_RESULT *, yyres, -1, "mnoGoSearch-Result", le_res); if(row<Res->num_rows){ switch(field){ case UDM_FIELD_URL: RETURN_STRING((Res->Doc[row].url),1);break; case UDM_FIELD_CONTENT: RETURN_STRING((Res->Doc[row].content_type),1);break; case UDM_FIELD_TITLE: RETURN_STRING((Res->Doc[row].title),1);break; case UDM_FIELD_KEYWORDS: RETURN_STRING((Res->Doc[row].keywords),1);break; case UDM_FIELD_DESC: RETURN_STRING((Res->Doc[row].description),1);break; case UDM_FIELD_TEXT: RETURN_STRING((Res->Doc[row].text),1);break; case UDM_FIELD_SIZE: RETURN_LONG((Res->Doc[row].size));break; case UDM_FIELD_URLID: RETURN_LONG((Res->Doc[row].url_id));break; case UDM_FIELD_SCORE: RETURN_LONG((Res->Doc[row].rating));break; case UDM_FIELD_MODIFIED: RETURN_LONG((Res->Doc[row].last_mod_time));break; default: RETURN_STRING("<Udm_Get_Res_Field: Unknown mnoGoSearch field name>",1);break; } }else{ RETURN_STRING("<Udm_Get_Res_Field: row number too large>",1); } } /* }}} */ /* {{{ proto int udm_free_res(int res_identifier) mnoGoSearch free result */ DLEXPORT PHP_FUNCTION(udm_free_res) { pval ** yyres; UDM_RESULT * Res; switch(ZEND_NUM_ARGS()){ case 1: { if (zend_get_parameters_ex(1, &yyres)==FAILURE) { RETURN_FALSE; } } break; default: WRONG_PARAM_COUNT; break; } ZEND_FETCH_RESOURCE(Res, UDM_RESULT *, yyres, -1, "mnoGoSearch-Result", le_res); zend_list_delete((*yyres)->value.lval); } /* }}} */ /* {{{ proto int udm_error(int agent_identifier) mnoGoSearch error message */ DLEXPORT PHP_FUNCTION(udm_error) { 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); RETURN_STRING(UdmDBErrorMsg(Agent->db),1); } /* }}} */ /* {{{ proto int udm_errno(int agent_identifier) mnoGoSearch error number */ DLEXPORT PHP_FUNCTION(udm_errno) { 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); RETURN_LONG(UdmDBErrorCode(Agent->db)); } /* }}} */ /* {{{ proto int udm_get_res_param(int res_identifier, const int param_id) mnoGoSearch result parameters */ DLEXPORT PHP_FUNCTION(udm_get_res_param) { pval ** yyres, ** yyparam; int param; UDM_RESULT * Res; switch(ZEND_NUM_ARGS()){ case 2: { if (zend_get_parameters_ex(2, &yyres, &yyparam)==FAILURE) { RETURN_FALSE; } convert_to_long_ex(yyparam); param=((*yyparam)->value.lval); } break; default: WRONG_PARAM_COUNT; break; } ZEND_FETCH_RESOURCE(Res, UDM_RESULT *, yyres, -1, "mnoGoSearch-Result", le_res); switch(param){ case UDM_PARAM_NUM_ROWS: RETURN_LONG(Res->num_rows);break; case UDM_PARAM_FOUND: RETURN_LONG(Res->total_found);break; default: /* FIXME: unknown parameter */ RETURN_STRING("<Udm_Get_Res_Param: Unknown mnoGoSearch param name>",1); break; } } /* }}} */ #endif /* * Local variables: * End: */ Index: php4/ext/mnogosearch/php_mnogo.h +++ php4/ext/mnogosearch/php_mnogo.h /* +----------------------------------------------------------------------+ | PHP HTML Embedded Scripting Language Version 3.0 | +----------------------------------------------------------------------+ | Copyright (c) 1997,1998 PHP Development Team (See Credits file) | +----------------------------------------------------------------------+ | This program is free software; you can redistribute it and/or modify | | it under the terms of one of the following licenses: | | | | A) the GNU General Public License as published by the Free Software | | Foundation; either version 2 of the License, or (at your option) | | any later version. | | | | B) the PHP License as published by the PHP Development Team and | | included in the distribution in the file: LICENSE | | | | This program is distributed in the hope that it will be useful, | | but WITHOUT ANY WARRANTY; without even the implied warranty of | | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | | GNU General Public License for more details. | | | | You should have received a copy of both licenses referred to here. | | If you did not, or have any questions about PHP licensing, please | | contact [EMAIL PROTECTED] | +----------------------------------------------------------------------+ | Authors: | | Initial version by Alex Barkov <[EMAIL PROTECTED]> | | and Ramil Kalimullin <[EMAIL PROTECTED]> | | Further development by Sergey Kartashoff <[EMAIL PROTECTED]> | +----------------------------------------------------------------------+ */ /* $Id: php_mnogo.h,v 0.3 2001/01/27 15:30:00 */ #ifndef _PHP_MNOGO_H #define _PHP_MNOGO_H #if HAVE_MNOGOSEARCH extern zend_module_entry mnogosearch_module_entry; #define mnogosearch_module_ptr &mnogosearch_module_entry #ifdef PHP_WIN32 #define PHP_MNOGO_API __declspec(dllexport) #else #define PHP_MNOGO_API #endif #ifdef ZTS #include "TSRM.h" #endif /* mnoGoSearch functions */ DLEXPORT PHP_MINIT_FUNCTION(mnogosearch); DLEXPORT PHP_RINIT_FUNCTION(mnogosearch); DLEXPORT PHP_MSHUTDOWN_FUNCTION(mnogosearch); DLEXPORT PHP_MINFO_FUNCTION(mnogosearch); DLEXPORT PHP_FUNCTION(udm_alloc_agent); DLEXPORT PHP_FUNCTION(udm_set_agent_param); DLEXPORT PHP_FUNCTION(udm_free_agent); DLEXPORT PHP_FUNCTION(udm_error); DLEXPORT PHP_FUNCTION(udm_errno); DLEXPORT PHP_FUNCTION(udm_find); DLEXPORT PHP_FUNCTION(udm_free_res); DLEXPORT PHP_FUNCTION(udm_get_res_field); DLEXPORT PHP_FUNCTION(udm_get_res_param); #else #define mnogosearch_module_ptr NULL #endif #define phpext_mnogosearch_ptr mnogosearch_module_ptr #endif /* _PHP_MNOGO_H */ Index: php4/ext/mnogosearch/setup.stub +++ php4/ext/mnogosearch/setup.stub # $Source: /local/repository/php4/ext/mnogosearch/setup.stub,v $ # $Id: setup.stub,v 1.1 2001/01/30 12:53:50 gluke Exp $ define_option with-mnogosearch 'mnoGoSearch support?' yesnodir \ 'no /usr/local/udmsearch mnoGoSearch install' \ ' Whether to build PHP with mnoGoSearch support. More info about mnoGoSearch can be found at http://search.mnogo.ru/.' Index: php4/ext/mnogosearch/test.php +++ php4/ext/mnogosearch/test.php <html> <body> <form method=post> <input type=text size=30 name=q value="<? echo $q; ?>"> <input type=submit value=" Search ! "> </form> <pre> <? if ($q=='') { print("</pre></body></html>\n"); exit(); } // Stage 1: allocate UdmSearch agent, set DBAddr and DBMode // DBMode is optional, "single" by default $udm=Udm_Alloc_Agent("mysql://udm:udm@localhost/udm/",'crc-multi'); // Stage 2: set search parameters $page_size=10; $page_number=0; $search_mode=UDM_MODE_BOOL; $first=$page_size*$page_number+1; Udm_Set_Agent_Param($udm,UDM_PARAM_PAGE_SIZE,$page_size); Udm_Set_Agent_Param($udm,UDM_PARAM_PAGE_NUM,$page_number); Udm_Set_Agent_Param($udm,UDM_PARAM_SEARCH_MODE,$search_mode); // Stage 3: perform search $res=Udm_Find($udm,$q); // Stage 4: display results // Check error code if(($errno=Udm_Errno($udm))>0){ // Display error message printf("Error #%d: '%s'\n",$errno,Udm_Error($udm)); }else{ // Get result parameters $total=Udm_Get_Res_Param($res,UDM_PARAM_FOUND); $rows=Udm_Get_Res_Param($res,UDM_PARAM_NUM_ROWS); printf("Documents %d-%d from %d total found\n\n", $first,$first+$rows-1,$total); // Fetch all rows for($i=0;$i<$rows;$i++){ printf("%3d. %s\n",$first+$i,Udm_Get_Res_Field($res,$i,UDM_FIELD_URL)); printf(" CONT : %s\n",htmlspecialchars(Udm_Get_Res_Field($res,$i,UDM_FIELD_CONTENT))); printf(" TITLE: %s\n",htmlspecialchars(Udm_Get_Res_Field($res,$i,UDM_FIELD_TITLE))); printf(" KEYWORDS: %s\n",htmlspecialchars(Udm_Get_Res_Field($res,$i,UDM_FIELD_KEYWORDS))); printf(" DESC: %s\n",htmlspecialchars(Udm_Get_Res_Field($res,$i,UDM_FIELD_DESC))); printf(" TEXT: %s\n",htmlspecialchars(Udm_Get_Res_Field($res,$i,UDM_FIELD_TEXT))); printf(" SIZE : %d\n",Udm_Get_Res_Field($res,$i,UDM_FIELD_SIZE)); printf(" MODIFIED : %s\n",Udm_Get_Res_Field($res,$i,UDM_FIELD_MODIFIED)); printf(" URLID : %d\n",Udm_Get_Res_Field($res,$i,UDM_FIELD_URLID)); printf(" SCORE : %d\n",Udm_Get_Res_Field($res,$i,UDM_FIELD_SCORE)); printf("---------\n"); } // Free result Udm_Free_Res($res); } //Stage 5: free UdmSearch agent Udm_Free_Agent($udm); ?> </pre> </body> </html>
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]