交叉張貼從DokuWiki forums這樣的:奇特的搜索錯誤DokuWiki中
所以,我做了一些修改,以允許三兩件事:在頁面名稱資本,自然情況下,在側邊欄的ToC排序和案例不敏感的搜索。
忍受我,因爲我知道這看起來像一個文件權限錯誤。我不相信。
在搜索「NUL」和任何變化(訥,訥,訥,等等),我收到以下錯誤信息:
Warning: Cannot unset offset in a non-array variable in C:\Websites\dokuwiki\inc\parserutils.php on line 365
Warning: Cannot unset offset in a non-array variable in C:\Websites\dokuwiki\inc\parserutils.php on line 366
Warning: Cannot unset offset in a non-array variable in C:\Websites\dokuwiki\inc\parserutils.php on line 367
Warning: Cannot unset offset in a non-array variable in C:\Websites\dokuwiki\inc\parserutils.php on line 368
Warning: Cannot unset offset in a non-array variable in C:\Websites\dokuwiki\inc\parserutils.php on line 369
Warning: filesize() [function.filesize]: stat failed for C:/Websites/dokuwiki/data/meta/nul.changes in C:\Websites\dokuwiki\inc\changelog.php on line 305
沒有和從未有過一個名爲頁「 NUL「。搜索完成後,它會向\ dokuwiki \ data \ index \ page.idx添加一個新行,其內容與我搜索的內容相同(nul,NuL,nUl等等)。一旦該行已被添加到page.idx,對於字母「N」,「U」或「L任何搜索」也將導致錯誤:
Warning: Cannot unset offset in a non-array variable in C:\Websites\dokuwiki\inc\parserutils.php on line 365
Warning: Cannot unset offset in a non-array variable in C:\Websites\dokuwiki\inc\parserutils.php on line 366
Warning: Cannot unset offset in a non-array variable in C:\Websites\dokuwiki\inc\parserutils.php on line 367
Warning: Cannot unset offset in a non-array variable in C:\Websites\dokuwiki\inc\parserutils.php on line 368
Warning: Cannot unset offset in a non-array variable in C:\Websites\dokuwiki\inc\parserutils.php on line 369
Warning: filectime() [function.filectime]: stat failed for C:/Websites/dokuwiki/data/pages/nul.txt in C:\Websites\dokuwiki\inc\parser\metadata.php on line 46
Warning: filemtime() [function.filemtime]: stat failed for C:/Websites/dokuwiki/data/pages/nul.txt in C:\Websites\dokuwiki\inc\parser\metadata.php on line 72
再次在網頁「NUL」還沒有曾經存在於維基上,正在被搜索時被寫入page.idx。
下面是我爲實現這三個東西我在文章的開頭提到的修改:
/inc/fulltext.php,線路255和263:我取代「strpos」與「stripos函數。」
if ($id !== '' && $cleaned !== '') {
foreach ($pages as $p_id => $p_title) {
if ((stripos($in_ns ? $p_id : noNSorNS($p_id), $cleaned) === false) &&
(!$in_title || (stripos($p_title, $id) === false))) {
unset($pages[$p_id]);
}
}
}
if (isset($ns)) {
foreach (array_keys($pages) as $p_id) {
if (stripos($p_id, $ns) !== 0) {
unset($pages[$p_id]);
}
}
}
/inc/pageutils.php,線114移除:
//$id = utf8_strtolower($id);
/inc/search.php,線40和41:我取代 「排序」 與 「natcasesort」
natcasesort($files);
natcasesort($dirs);
據我所知,這些都是微小的變化,我沒有看到任何立即顯而易見的事情會導致此問題。
任何想法?
更新 -
我恢復了我的所有更改,錯誤仍然存在。
然後我在一個完全獨立的目錄中安裝了一個新的DokuWiki(Release 2010-11-07a「Anteater」),錯誤依然存在。
然後我安裝了splitbrain.org的夜間快照,錯誤依然存在。
任何人有任何想法?
事實證明,這是一個Windows特定的錯誤是由於 「NUL」 被保留。我在我的原始問題鏈接的論壇帖子中發佈了一個修復程序。 – 2011-04-13 19:30:56
您應該將其作爲答案發布,並將其標記爲已接受 - 這是一個令人愉快的邊緣案例。 – Charles 2011-04-14 03:31:26
它不會讓我接受我自己的答案另外兩天,但我已經發布了它! – 2011-04-14 05:22:04