"; // recuperation des attributs preg_match("/^\[\|(.*)$/m",$thing,$match); // echo "parsetable : \$match = ";var_dump($match);echo "
"; if ($match[1]){ $tableattr = $match[1]; } $table = "\n"; //suppression de [|xxxx et de |] $thing = preg_replace("/^\[\|(.*)$/m","",$thing); $thing = trim(preg_replace("/\|\]/m","",$thing)); // echo "parsetable suppression [| |]: \$thing = $thing
"; //recuperation de chaque ligne $rows = preg_split("/$/m",$thing,-1,PREG_SPLIT_NO_EMPTY); // echo "parsetable preg_split:";var_dump($rows);echo "
"; //analyse de chaque ligne foreach ($rows as $row){ $table .= parsetablerow($row); } $table.= "
"; return $table; } //parse la definition d'une ligne function parsetablerow($row) { $rowattr = ""; $row = trim($row); // echo "parsetablerow debut : \$row = $row
"; //detection des attributs de ligne => si la ligne ne commence pas par | alors attribut if (!preg_match("/^\|/",$row,$match)){ preg_match("/^!([^\|]*)!\|/",$row,$match); $rowattr = $match[1]; // echo "\$rowattr = $rowattr
"; $row = trim(preg_replace("/^!([^\|]*)!/","",$row)); } $result .= " \n"; $row = preg_replace("/^\|/","",$row); $row = preg_replace("/\|$/","",$row); // echo "parsetablerow sans attribut : \$row = $row
"; //recuperation de chaque cellule $cells = explode("|",$row); //nb : seule les indices impaire sont significatif // echo "parsetablerow preg_split \$cells:";var_dump($cells);echo "
"; $i=0; foreach ($cells as $cell){ // if ($i % 2){ // echo "\$cell = $cell
"; $result .= parsetablecell($cell); // } $i++; } $result .= " \n"; return $result; } //parse la definition d'une cellule function parsetablecell($cell) { global $wiki; $cellattr = ""; if (preg_match("/^!(.*)!/",$cell,$match)){ $cellattr = $match[1]; } $cell = preg_replace("/^!(.*)!/","",$cell); //si espace au debut => align=right //si espace a la fin => align=left //si espace debut et fin => align=center if (preg_match("/^\s(.*)/",$cell)){ $align="right"; } if (preg_match("/^(.*)\s$/",$cell)){ $align="left"; } if (preg_match("/^\s(.*)\s$/",$cell)){ $align="center"; } if ($align) $cellattr .= " align=\"$align\""; // echo "\$this->classname = ".get_class($wiki)."
"; return " ".$wiki->Format($cell)."\n"; } ?>