mirror of
https://github.com/sbrl/Pepperminty-Wiki.git
synced 2024-11-22 04:23:01 +00:00
feture-search: properly break reference after pointer foreach
ref https://bugs.php.net/bug.php?id=70387
This commit is contained in:
parent
521b66394c
commit
31253edff4
1 changed files with 14 additions and 3 deletions
|
@ -150,7 +150,9 @@ register_module([
|
||||||
header("x-invindex-query-time: {$env->perfdata->invindex_query_time}ms");
|
header("x-invindex-query-time: {$env->perfdata->invindex_query_time}ms");
|
||||||
|
|
||||||
$start = microtime(true);
|
$start = microtime(true);
|
||||||
foreach($results as &$result) {
|
// FUTURE: When we implement $_GET["offset"] and $_GET["count"] or something we can optimise here
|
||||||
|
foreach($results as $key => &$result) {
|
||||||
|
error_log("[search/context extractor] pagename: {$result["pagename"]}");
|
||||||
$filepath = $env->storage_prefix . $result["pagename"] . ".md";
|
$filepath = $env->storage_prefix . $result["pagename"] . ".md";
|
||||||
if(!file_exists($filepath)) {
|
if(!file_exists($filepath)) {
|
||||||
error_log("[pepperminty wiki/$settings->sitename/search] Search engine returned {$result["pagename"]} as a result (maps to $filepath), but it doesn't exist on disk (try rebuilding the search index).");
|
error_log("[pepperminty wiki/$settings->sitename/search] Search engine returned {$result["pagename"]} as a result (maps to $filepath), but it doesn't exist on disk (try rebuilding the search index).");
|
||||||
|
@ -162,17 +164,23 @@ register_module([
|
||||||
file_get_contents($filepath)
|
file_get_contents($filepath)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
// This is absolutely *essential*, because otherwise we hit a very strange bug whereby PHP duplicates the value of the last iterated search result. Ref https://bugs.php.net/bug.php?id=70387 - apparently "documented behaviour"
|
||||||
|
unset($result);
|
||||||
$env->perfdata->context_generation_time = round((microtime(true) - $start)*1000, 3);
|
$env->perfdata->context_generation_time = round((microtime(true) - $start)*1000, 3);
|
||||||
header("x-context-generation-time: {$env->perfdata->context_generation_time}ms");
|
header("x-context-generation-time: {$env->perfdata->context_generation_time}ms");
|
||||||
|
|
||||||
$env->perfdata->search_time = round((microtime(true) - $search_start)*1000, 3);
|
$env->perfdata->search_time = round((microtime(true) - $search_start)*1000, 3);
|
||||||
|
|
||||||
header("x-search-time: {$env->perfdata->search_time}ms");
|
header("x-search-time: {$env->perfdata->search_time}ms");
|
||||||
|
|
||||||
|
error_log(var_export($results, true));
|
||||||
|
|
||||||
if(!empty($_GET["format"]) && $_GET["format"] == "json") {
|
if(!empty($_GET["format"]) && $_GET["format"] == "json") {
|
||||||
header("content-type: application/json");
|
header("content-type: application/json");
|
||||||
$json_results = new stdClass();
|
$json_results = new stdClass();
|
||||||
foreach($results as $result) $json_results->{$result["pagename"]} = $result;
|
foreach($results as $key => $result) {
|
||||||
|
error_log("[search/json] id: $key, pagename: {$result["pagename"]}");
|
||||||
|
$json_results->{$result["pagename"]} = $result;
|
||||||
|
}
|
||||||
exit(json_encode($json_results));
|
exit(json_encode($json_results));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -230,9 +238,12 @@ register_module([
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var_dump($results);
|
||||||
|
|
||||||
$i = 0; // todo use $_GET["offset"] and $_GET["result-count"] or something
|
$i = 0; // todo use $_GET["offset"] and $_GET["result-count"] or something
|
||||||
foreach($results as $result)
|
foreach($results as $result)
|
||||||
{
|
{
|
||||||
|
error_log("[search] pagename: {$result["pagename"]}");
|
||||||
$link = "?page=" . rawurlencode($result["pagename"]);
|
$link = "?page=" . rawurlencode($result["pagename"]);
|
||||||
$pagesource = file_get_contents($env->storage_prefix . $result["pagename"] . ".md");
|
$pagesource = file_get_contents($env->storage_prefix . $result["pagename"] . ".md");
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue