PHP ʖ²ἯTH º󍋼/A CX. YAZ functions ½鉜 This extension offers a PHP interface to the YAZ toolkit that implements the Z39.50 Protocol for Information Retrieval. With this extension you can easily implement a Z39.50 origin (client) that searches or scans Z39.50 targets (servers) in parallel. The module hides most of the complexity of Z39.50 so it should be fairly easy to use. It supports persistent stateless connections very similar to those offered by the various RDB APIs that are available for PHP. This means that sessions are stateless but shared amongst users, thus saving the connect and initialize phase steps in most cases. YAZ is available at http://www.indexdata.dk/yaz/. You can find news information, example scripts, etc. for this extension at http://www.indexdata.dk/phpyaz/. °²װ Compile YAZ (ANSI/NISO Z39.50 support) and install it. Build PHP with your favourite modules and add option --with-yaz[=DIR]. Your task is roughly the following: gunzip -c php-4.3.X.tar.gz|tar xf - gunzip -c yaz-1.9.Y.tar.gz|tar xf - cd yaz-1.9.Y ./configure --prefix=/usr make make install cd ../php-4.3.X. ./configure --with-yaz=/usr/bin make make install ԋАʱŤփ բЩº¯ʽµĐЎªʜµ½ȫ¾ּA HREF="configuration.html#configuration.file" Ťփ΄¼þ php.ini µē°Ϭ¡£ Name Default Changeable yaz.max_links "100" PHP_INI_ALL yaz.log_file "" PHP_INI_ALL ׊Դ Ѝ ¸À©չģ¿鎴¶¨ҥȎºΗʔ´ Ѝ¡£ Ԥ¶¨ҥ³£ ·¶= PHP/YAZ keeps track of connections with targets (Z-Associations). A resource represents a connection to a target. =ד 1. Parallel searching using YAZ() The script below demonstrates the parallel searching feature of the API. When invoked with no arguments it prints a query form; else (arguments are supplied) it searches the targets as given in array host. $num_hosts = count ($host); if (empty($term) || count($host) == 0) {echo 'form method="get" input type="checkbox" name="host[]" value="bagel.indexdata.dk/gils" GILS test input type="checkbox" name="host[]" value="localhost:9999/Default" local test input type="checkbox" checked="1" name="host[]" value="z3950.loc.gov:7090/voyager" Library of Congress br RPN Query: input type="text" size="30" name="term" input type="submit" name="action" value="Search" ';} else {echo 'You searced for'. htmlspecialchars($term). 'br '; for ($i = 0; $i $num_hosts; $i++) {$id[] = yaz_connect($host[$i]); yaz_range($id[$i], 1, 10); yaz_search($id[$i],"rpn",$term);} yaz_wait(); for ($i = 0; $i $num_hosts; $i++) {echo' hr '. $host[$i]. ":"; $error = yaz_error($id[$i]); if (!empty($error)) {echo "Error: $error";} else {$hits = yaz_hits($id[$i]); echo "Result Count $hits";} echo' dl '; for ($p = 1; $p = 10; $p++) {$rec = yaz_record($id[$i],$p,"string"); if (empty($rec)) continue; echo "dt b $p /b /dt dd "; echo ereg_replace("\n"," br \n",$rec); echo "/dd ";} echo '/dl ';}} Ŀ¼ yaz_addinfo -- Returns additional error information yaz_ccl_conf -- Configure CCL parser yaz_ccl_parse -- Invoke CCL Parser yaz_close -- Close YAZ connection yaz_connect -- Prepares for a connection to a Z39.50 target (server). yaz_database -- Specifies the databases within a session yaz_element -- Specifies Element-Set Name for retrieval yaz_errno -- Returns error number yaz_error -- Returns error description yaz_get_option -- Returns value of option for connection yaz_hits -- Returns number of hits for last search yaz_itemorder -- Prepares for Z39.50 Item Order with an ILL-Request package yaz_present -- Prepares for retrieval (Z39.50 present). yaz_range -- Specifies the maximum number of records to retrieve yaz_record -- Returns a record yaz_scan_result -- Returns Scan Response result yaz_scan -- Prepares for a scan yaz_schema -- Specifies schema for retrieval. yaz_search -- Prepares for a search yaz_set_option -- Sets one or more options for connection yaz_sort -- Sets sorting criteria yaz_syntax -- Specifies the preferred record syntax for retrieval. yaz_wait -- Wait for Z39.50 requests to complete º󍋼/A ưµ㼯A xslt_set_scheme_handlers ɏһ¼¶ yaz_addinfo