0 && preg_match("/^ *$/", $lines[0])) array_shift($lines); } function trimEmpties(&$lines) { while (($len = count($lines)) > 0 && preg_match("/^ *$/", $lines[$len-1])) array_pop($lines); } function &fixUpTerms($terms) { if (!is_array($terms)) $terms = array($terms); $terms2 = array(); foreach ($terms as $i => $term) { $term = preg_replace('/\//', '\/', $term); $terms2[] = '/' . $term . '/'; } return $terms2; } function &highlightterms($terms, $text) { $high = array( '$0', '$0', '$0', '$0', '$0', '$0', ); // print_r($terms); // print "
"; // print_r($high); // print "
$text
\n"; $terms = fixUpTerms($terms); $x = preg_replace($terms, $high, $text); // print "$x
\n"; // print "
"; return $x; } class Criteria { var $name; var $textname; var $book; var $dir; var $webtrust; var $requirement; var $comments; var $verified; var $mark_regexp; function Criteria($name, $loc = '') { if ($e = isBadName($name)) exit("not a Criteria ($e): $name"); $this->name = $name; $book = substr($name, 0, 1); $this->dir = "{$book}/{$this->name}"; $this->webtrust = $this->requirement = $this->comments = $this->verified = false; $mark_regexp = false; } function criteriaFile() { return $this->dir . "/" . $this->name . ".html"; } function criteriaVerified() { return $this->dir . "/verified.html"; } function criteriaComments() { return $this->dir . "/comments.html"; } function &stripTable(&$data) { $lines = explode("\n", $data); if (preg_match('/^ */', $line)) array_pop($lines); return $lines; } function &getNextTD(&$lines) { $e1 = " "; $e2 = " "; $block = array(); skipEmpties($lines); $line = $lines[0]; if (!preg_match('/^ */', $line)) return $e1 . ""; $line = array_shift($lines); if (preg_match('/^ *(.*)<\/TD> *$/', $line, $matches)) { return $matches[1]; } $inblock = true; while ($inblock && count($lines) > 0) { $line = array_shift($lines); if (preg_match('/^ *<\/TD> *$/', $line)) $inblock = false; else $block[] = $line; } if ($inblock) return $e2; $newdata = join("\n", $block); return $newdata; } function initCriteria() { $data = read_content_of_file($this->criteriaFile()); if (!$data) { $this->textname = " {$this->name} "; $this->webtrust = " "; $this->requirement = " file not found "; return; } $lines = $this->stripTable($data); $this->textname = $this->getNextTD($lines); $this->webtrust = $this->getNextTD($lines); $this->requirement = $this->getNextTD($lines); } function initStraight($name) { $data = read_content_of_file($name); if (!$data) { $this->comments = ""; return; } $lines = $this->stripTable($data); $new_data = join("\n", $lines); return $new_data; } function initComments() { $this->comments = $this->initStraight($this->criteriaComments()); } function initVerified() { $this->verified = $this->initStraight($this->criteriaVerified()); } function getTextName() { if (!$this->textname) $this->initCriteria(); return $this->textname; } function getWebTrust() { if (!$this->webtrust) $this->initCriteria(); return $this->webtrust; } function getRequirement() { if (!$this->requirement) $this->initCriteria(); return $this->requirement; } function getVerified() { if (!$this->verified) $this->initVerified(); return $this->verified; } function getComments() { if (!$this->comments) $this->initComments(); return $this->comments; } function _setup_mark_regexp() { if ($this->mark_regexp) return ; $this->mark_regexp = array(); $this->mark_regexp['req'] = preg_replace('/