get_parms("qry"); if (!$parm['qry']) $parm['qry'] = 'last'; ?> Test extension ...recherche... Fonction de la DLL : "); $result = ""; $allfunc = get_extension_funcs("phrasea2"); foreach ($allfunc as $oneFunc) $result.= $oneFunc . "\n"; print("
"); $sessid = null; function showtime() { static $last_t = false; $t = microtime(true); if ($last_t !== false) printf("Durée : %0.5f", $t - $last_t); $last_t = $t; } /* // ------------------ phrasea_testutf8 -------------------- $code = '$ret = phrasea_testutf8();' ; dumpcode($code); eval($code); dumpvar($ret, '$ret'); die(); */ showtime(); // ------------------ phrasea_usebase -------------------- /* $code = '$ret = phrasea_usebase("'.GV_db.'");' ; dumpcode($code); eval($code); dumpvar($ret, '$ret'); showtime(); */ // ------------------ phrasea_list_bases -------------------- /* // ------------------ phrasea_conn -------------------- $code = '$ret = phrasea_conn("127.0.0.1", "3306", "root", "", "'.GV_db.'");' ; dumpcode($code); eval($code); dumpvar($ret, '$ret'); showtime(); */ //// ------------------ phrasea_list_bases -------------------- // //$code = '$lb = phrasea_list_bases();'; // //dumpcode($code); //eval($code); //dumpvar($lb, '$lb'); // //showtime(); // ------------------ phrasea_open_session -------------------- $code = '$sessid = phrasea_create_session(' . USR_ID . ');'; dumpcode($code); eval($code); print(" il faut que ca renvoie une valeur de session "); dumpvar($sessid, '$sessid'); showtime(); // ------------------ phrasea_open_session -------------------- $code = '$ph_session = phrasea_open_session($sessid, ' . USR_ID . ');'; dumpcode($code); eval($code); print(" il faut que ca renvoie un tableau session "); dumpvar($ph_session, '$ph_session'); showtime(); //die(); if ($ph_session) { $sessid = $ph_session["session_id"]; // ------------------ phrasea_open_session -------------------- $code = '$ph_session = phrasea_open_session(' . $sessid . ', ' . USR_ID . ');'; dumpcode($code); eval($code); print(" il faut que ca renvoie la meme valeur de session "); dumpvar($ph_session, '$ph_session'); showtime(); // pour interroger plus bas, on doit avoir un usr_id et avoir injecte ses 'mask' (droits dans appbox/xbascollusr) dans les dbox/collusr // !!!!! pour simplifier, on injecte un usr bidon (id=0) avec des mask '0' (tout voir) !!!!! // on se register sur 4 collections // $rmax = 99999; // $basok = 0; // foreach ($lb["bases"] as $base) // { // if ($base["online"] == true) // { // $connbas = connection::getPDOConnection($base['sbas_id']); // // foreach ($base["collections"] as $coll_id => $coll) // { // if ($rmax-- > 0) // { // // // ------------------ phrasea_register_base -------------------- // // // $code = '$rb = phrasea_register_base(' . $sessid . ', ' . $coll['base_id'] . ', "", "");'; // // dumpcode($code); // eval($code); // print(" register sur base connue doit retourner 'true' "); // dumpvar($rb, '$rb'); // // if ($rb) // { // echo "TRUE (comportement normal)

"; // // showtime(); // // $sql = "REPLACE INTO collusr (site, usr_id, coll_id, mask_and, mask_xor) // VALUES (:site, :usr_id, :coll_id, 0, 0)"; // // $params = array( // ':site' => $registry->get('GV_sit') // , ':usr_id' => USR_ID // , ':coll_id' => $coll['coll_id'] // ); // // $stmt = $connbas->prepare($sql); // $stmt->execute($params); // $stmt->closeCursor(); // // $basok++; // } // else // { // echo "FALSE (comportement anormal)

"; // // showtime(); // } // } // } // } // } if ($basok == 0) { printf("pas de base/coll ok, fin"); phrasea_close_session($sessid); die(); } // // ------------------ phrasea_register_base (fake) -------------------- // // $code = '$rb = phrasea_register_base(' . $sessid . ', 123456, "", "");'; // // dumpcode($code); // eval($code); // print(" register sur xbas bidon connue doit retourner 'false' "); // dumpvar($rb, '$rb'); // // if (!$rb) // echo "FALSE (comportement normal)

"; // else // echo "TRUE (comportement anormal)

"; // // showtime(); $basok += $rb ? 1 : 0; // ------------------ phrasea_open_session -------------------- $code = '$ph_session = phrasea_open_session(' . $sessid . ', ' . USR_ID . ');'; dumpcode($code); eval($code); print(" phrasea_open_session(...) apres $basok phrasea_register_base(...) doit retourner les bases/collections registered "); dumpvar($ph_session, '$ph_session'); showtime(); // ------------------ phrasea_subdefs -------------------- // // $code = '$subdef = phrasea_subdefs(' . $sessid . ', 58, 18863);'; // // dumpcode($code); // eval($code); // dumpvar($subdef, '$subdef'); // // showtime(); // ------------------ phrasea_clear_cache -------------------- $code = '$ret = phrasea_clear_cache(' . $sessid . ');'; dumpcode($code); eval($code); dumpvar($ret, '$ret'); showtime(); ?>
recherche :
0) // au - une coll de la base etait dispo { $kbase = "S" . $phbase["xbas_id"]; $tbases[$kbase] = array(); $tbases[$kbase]["xbas_id"] = $phbase["xbas_id"]; $tbases[$kbase]["searchcoll"] = $tcoll; $qp = new searchEngine_adapter_phrasea_queryParser(); $treeq = $qp->parsequery($parm['qry']); $arrayq = $qp->makequery($treeq); $tbases[$kbase]["arrayq"] = $arrayq; } } */ $tbases = array(); foreach ($ph_session["bases"] as $kphbase => $phbase) { $tcoll = array(); foreach ($phbase["collections"] as $coll) { $tcoll[] = 0 + $coll["base_id"]; // le tableau de colls doit contenir des int } if (sizeof($tcoll) > 0) // au - une coll de la base etait cochee { $kbase = "S" . $phbase["sbas_id"]; $tbases[$kbase] = array(); $tbases[$kbase]["sbas_id"] = $phbase["sbas_id"]; $tbases[$kbase]["searchcoll"] = $tcoll; $tbases[$kbase]["mask_xor"] = $tbases[$kbase]["mask_and"] = 0; $qp = new searchEngine_adapter_phrasea_queryParser(); $treeq = $qp->parsequery($parm['qry']); $arrayq = $qp->makequery($treeq); $tbases[$kbase]["arrayq"] = $arrayq; } } // ------------------ phrasea_query2 -------------------- /* $nbanswers = 0; foreach($tbases as $kb=>$base) { $tbases[$kb]["results"] = NULL; set_time_limit(120); //$tbases[$kb]["results"] = phrasea_query2($ph_session["session_id"], $base["base_id"], $base["searchcoll"], $base["arrayq"], GV_sit, USR_ID, TRUE); $tbases[$kb]["results"] = phrasea_query2($ph_session["session_id"], $base["base_id"], $base["searchcoll"], $base["arrayq"], GV_sit, (string)(USR_ID) , TRUE , (0) ); if($tbases[$kb]["results"]) { $nbanswers += $tbases[$kb]["results"]["nbanswers"]; $result .= var_export($tbases[$kb]["results"],true); } } var_dump($result); */ $nbanswers = 0; foreach ($tbases as $kb => $base) { $ret = null; $tbases[$kb]["results"] = NULL; set_time_limit(120); $code = "\$ret = phrasea_query2(\n"; $code .= "\t\t\t" . $ph_session["session_id"] . "\t\t// ses_id \n"; $code .= "\t\t\t, " . $base["sbas_id"] . "\t\t// bsas_id \n"; $code .= "\t\t\t, " . my_var_export($base["searchcoll"]) . "\t\t// coll_id's \n"; $code .= "\t\t\t, " . my_var_export($base["arrayq"]) . "\t\t// arrayq \n"; $code .= "\t\t\t, '" . $registry->get('GV_sit') . "'\t\t// site \n"; $code .= "\t\t\t, " . USR_ID . " \t\t// usr_id ! \n"; $code .= "\t\t\t, FALSE \t\t// nocache \n"; $code .= "\t\t\t, PHRASEA_MULTIDOC_DOCONLY\n"; // $code .= "\t\t\t, PHRASEA_MULTIDOC_REGONLY\n" ; // $code .= "\t\t\t, array('DATE') \t\t// sort fields \n" ; $code .= "\t\t);"; // $code .= '$base["arrayq"], "'.GV_sit.'", '.USR_ID.', FALSE, PHRASEA_MULTIDOC_DOCONLY, array("DATE")); // USR_ID=0...' ; dumpcode($code); eval($code); print("
si les bases ne sont pas vides on devrait obtenir le nb de resultats en face de \"nbanswers\""); dumpvar($ret, '$ret'); showtime(); // $tbases[$kb]["results"] = phrasea_query2($ph_session["session_id"], $base["xbas_id"], $base["searchcoll"], $base["arrayq"], GV_sit, USR_ID, FALSE, PHRASEA_MULTIDOC_DOCONLY, array('DATE')); // USR_ID=0... if ($ret) { $tbases[$kb]["results"] = $ret; $nbanswers += $tbases[$kb]["results"]["nbanswers"]; } } /* */ if (function_exists('phrasea_save_cache')) { // ------------------ phrasea_save_cache -------------------- $code = '$ret = phrasea_save_cache(' . $ph_session["session_id"] . ');'; dumpcode($code); eval($code); dumpvar($ret, '$ret'); showtime(); } // die(); // ------------------ phrasea_fetch_results -------------------- $code = '$rs = phrasea_fetch_results(' . $ph_session["session_id"] . ', 1, 20, true, \'[[em]]\', \'[[/em]]\');'; dumpcode($code); eval($code); dumpvar($rs, '$rs'); showtime(); // ------------------ phrasea_close_session -------------------- /* $code = '$ret = phrasea_close_session('.$ph_session["session_id"].');' ; dumpcode($code); eval($code); dumpvar($ret, '$ret'); showtime(); */ } function dumpcode($code) { print("\n" . '
'); $h = highlight_string('', true); $h = str_replace('<?php', '', $h); $h = str_replace('?>', '', $h); print($h); print('
' . "\n"); } function dumpvar($var, $varname) { print("\n" . '
'); $h = highlight_string('', true); $h = str_replace('<?php', '', $h); $h = str_replace('?>', '', $h); print('' . $varname . ' is : ' . $h); print('
' . "\n"); } function my_var_export($var) { $var = str_replace("\n", "", var_export($var, true)); $var = str_replace(" ", " ", $var); $var = str_replace(" ", " ", $var); $var = str_replace(" ", " ", $var); $var = str_replace(" ", " ", $var); $var = str_replace(" => ", "=>", $var); $var = str_replace("array ( ", "array(", $var); $var = str_replace(", )", ",)", $var); $var = str_replace(",)", ")", $var); return($var); } ?>