我有一个有趣的查询..百科风格包括 - 周期检测PHP
我可能已经过了简化的例子,但虐待尽我所能来描述我的问题。
我建立一个非常简单的实现从无到有维基的,一切都很顺利,直到我意识到我需要循环检测,以防止数据填充页面和幸福满溢栈堆的无限循环。
数据库结构是基本的,还有其更复杂的,什么是示但对于这个目的的后两列是我们所需要的。
内容字段很简单,它存储页面或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;
}
问题: 我将如何防止维基部分不休包括海誓山盟。 即WikiPart 1包含WikiPart2 ..但是WikiPart 2包含WikiPart1
parse或readData()函数将继续循环。
关于
那么......你的问题在哪里? – Nick 2011-12-15 16:51:47
哦,是的,谢谢..大声笑 – IEnumerable 2011-12-15 16:54:42