📄 preferences.inc
字号:
<?class preferences { var $name; var $sections = array(); var $base_dn; var $host; var $attribute_names = array(); cfunction getSection($s) { //// echo "getSection(".$s.")<br>"; $sect = array(); for ($i=0; $i<count($this->sections); $i++) { $sect = $this->sections[$i]; // echo $sect[0]."<br>"; if ($sect[0] == $s) { // echo "Found ".$sect[0]."<br>"; return $sect[1]; } } // echo "Didn't find ".$s."<br>"; } cfunction get($s) { $class = explode(".", $s); $sect = $this->getSection($class[0]); $values = array(); $values = $sect[1]; for ($i=0; $i<count($sect); $i++) { $values = $sect[$i]; // echo $values[0]."<br>"; if ($values[0] == $class[1]) { // echo "Found ".$values[0]."<br>"; return $values[1]; } } // echo "Didn't find ".$class[1]."<br>"; } cfunction getName($s) { $n = trim(strtok($s, "{")); return $n; } cfunction getBody($s) { $i = strpos($s, "{") + 1; $j = strpos($s, "}") - 1; $tok = substr($s, $i, $j-$i); return $tok; } cfunction getValues($b) { $t = '" ","\" ","\n"'; $av_pairs = array(); $pairs = array(); $av_pair = array(); $pairs = explode(";", $b); for ($i=0; $i<count($pairs)-1; $i++) { $av_pair = explode(":", $pairs[$i]); $av_pair[0] = trim($av_pair[0]); $av_pair[1] = trim($this->stripString($av_pair[1], $t)); // echo "<li>".$av_pair[0].":".$av_pair[1]; $av_pairs[$i] = $av_pair; } return $av_pairs; } cfunction getStatements($s) { $i = 0; $end = strpos($s, "}"); while($end != FALSE) { $tok = substr($s, 0, $end+1); $s = substr($s, $end+1, strlen($s)); // echo "<ul>"; $this->sections[$i] = $this->getStatement($tok); // echo "</ul>\n"; $end = strpos($s, "}"); $i++; } // echo count($this->sections)." sections<br>"; } cfunction getStatement($s) { $values[0] = $this->getName($s);// echo "<li>Name ".$values[0]; $body = $this->getBody($s);// echo "<li>Values<ul>"; $values[1] = $this->getValues($body);// echo "</ul></li>"; return $values; } cfunction loadPreferences() { if (count($preferences) != 0) { echo "I have got ".count($this->sections)." preferences here<br>\n"; } else { $fp = fopen("php3tool.conf", "r"); $i = 0; $string = ""; while (!feof($fp)) { $string .= fgets($fp, 80); } fclose($fp); $this->getStatements($string); } $this->loadAttributeNames($this->get("PATH.attributes")); } cfunction loadAttributeNames($s = "at.conf") { // global $attribute_names; if (count($this->attribute_names) != 0) { //This is bullshit here..how do we make php3 //preserve an array in memory between re-loads? //And no, I'm not going to send it every time //I make a subsequent request.. //If we don't fix these things it won't run //on anything smaller than a StarFire 10000 //EVEN THOUGH this stuff is suprisingly fast. echo "I have got attribute_names here<br>\n"; } else { //echo "I dont have attribute_names here<br>\n"; $fp = fopen($s, "r"); $i = 0; while (!feof($fp)) { $string = ""; $foo = ""; $string = fgets($fp, 80); $foo = strtok($string, ","); $this->attribute_names[$i][0] = $foo; $foo = strtok(","); $this->attribute_names[$i][1] = $foo; $foo = strtok("\n"); $this->attribute_names[$i][2] = $foo; $i++; } } // echo "Hello world:<b>".count($this->attribute_names)."</b>\n"; // for ($i=0; $i<count($this->attribute_names)-1; $i++) { // echo $this->attribute_names[$i][0]." - <strong>".$this->attribute_names[$i][1]."</strong> - ".$this->attribute_names[$i][2]."<br>\n"; // } return $this->attribute_names; } cfunction stripString($string, $tokens) { $s = $string; for ($i=0; $i<count($tokens); $i++) { $result = ""; $tok = strtok($s, $tokens[$i]); while($tok) { $result .= $tok; // echo "result = ".$result."\n"; $tok = strtok($tokens[$i]); } $s = $result; // echo "s = ".$s."\n"; } // echo "result = ".$result."\n"; return $result; }}?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -