を、私はやや興味深いのクエリを持っている...ウィキペディアスタイルは、 - 周期検出PHP
私は簡単な例を介して持っていますが、病気の私の問題を記述するために最善を尽くします。
私は、サイクル・ディテクションがデータの無限ループを防ぎ、スタック・ヒープをうまくオーバーフローさせないようにするまで、うまくいっています。
データベース構造は基本的なものであり、表示されているものよりも複雑ですが、この記事の目的上、2つの列だけが必要です。
コンテンツフィールドはまっすぐで、ページまたはWikiPartリンクのコンテンツ、つまり[[n]]を別の部分にリンクするために格納し、リンクは[[n]]としてリンクされ、{{n }}。
+---------------------------+
| id | Content |
+---------------------------+
| 1 | see {{2}} here |
+---------------------------+
| 2 | {{1}} here [[4]] |
+---------------------------+
| 4 | {{1}} |
+---------------------------+
$html_for_screen = readData($this->Content);
function readData($wikipage) {
$str = "";
//Convert any wiki links to HTML Links
$wikipage = Converter::convertWikink($wikipage);
//Get ALL Include Link matches into array
$wiki_inc = RegEx::getMatches(wikipage);
//Iterate through the Matches
foreach($wiki_inc as $wiki) {
//traverse through each match.
//but I assume here is where I would eventually have the trouble
//With infinant loops
$str .= readData($wiki);
}
return $str;
}
質問: どのように私は際限なくお互いを含めウィキパーツを防止するであろう。 すなわちWikiPart1にはWikiPart2が含まれていますが、WikiPart2にはWikiPart1が含まれています
parseまたはreadData()関数はループを繰り返します。
について
so ...ここにあなたの質問はありますか? – Nick
ああ、ありがとう..lol – IEnumerable