📄 respond.php
字号:
}
elseif (strtoupper($xmlnode["tag"])=="THINK"){
recursechildren(realchild($xmlnode),$inputstar,$thatstar,$topicstar);
return "";
}
elseif (strtoupper($xmlnode["tag"])=="BOT"){
$mynode=upperkeysarray($xmlnode["attributes"]);
//$name=$xmlnode["attributes"]["NAME"];
$name=$mynode["NAME"];
return botget($name);
}
elseif (strtoupper($xmlnode["tag"])=="GET"){
$mynode=upperkeysarray($xmlnode["attributes"]);
//$name=$xmlnode["attributes"]["NAME"];
$name=$mynode["NAME"];
return bget($name);
}
elseif (strtoupper($xmlnode["tag"])=="SET"){
//$name=$xmlnode["attributes"]["NAME"];
$mynode=upperkeysarray($xmlnode["attributes"]);
$name=$mynode["NAME"];
$value=recursechildren(realchild($xmlnode),$inputstar,$thatstar,$topicstar);
bset($name,$value);
return $value;
}
elseif (strtoupper($xmlnode["tag"])=="UPPERCASE"){
$value=recursechildren(realchild($xmlnode),$inputstar,$thatstar,$topicstar);
return strtoupper($value);
}
elseif (strtoupper($xmlnode["tag"])=="FORMAL"){
$nvalue="";
$value=recursechildren(realchild($xmlnode),$inputstar,$thatstar,$topicstar);
$value=strtolower($value);
$words=split(" ",$value);
for ($x=0;$x<sizeof($words);$x++){
if ($x!=0){
$nvalue.=" ";
}
$nvalue .= ucfirst($words[$x]);
}
return $nvalue;
}
elseif (strtoupper($xmlnode["tag"])=="LOWERCASE"){
$value=recursechildren(realchild($xmlnode),$inputstar,$thatstar,$topicstar);
return strtolower($value);
}
elseif (strtoupper($xmlnode["tag"])=="GENDER"){
$value=recursechildren(realchild($xmlnode),$inputstar,$thatstar,$topicstar);
return gender($value);
}
elseif (strtoupper($xmlnode["tag"])=="SENTENCE"){
$value=recursechildren(realchild($xmlnode),$inputstar,$thatstar,$topicstar);
return ucfirst($value);
}
elseif (strtoupper($xmlnode["tag"])=="INPUT"){
$mynode=upperkeysarray($xmlnode["attributes"]);
//$index = $xmlnode["attributes"]["INDEX"];
if (!((is_array($mynode))&&(isset($mynode["INDEX"])))){
$mynode["INDEX"]="";
}
$index = $mynode["INDEX"];
if ($index==""){
$index=1;
}
$index=$index-1;
return getinput($index);
}
elseif (strtoupper($xmlnode["tag"])=="GOSSIP"){
$value=recursechildren(realchild($xmlnode),$inputstar,$thatstar,$topicstar);
insertgossip($value);
return $value;
}
elseif (strtoupper($xmlnode["tag"])=="PERSON"){
$value=recursechildren(realchild($xmlnode),$inputstar,$thatstar,$topicstar);
if ($value==""){
$value=$inputstar[0];
}
return firstthird($value);
}
elseif (strtoupper($xmlnode["tag"])=="PERSON2"){
$value=recursechildren(realchild($xmlnode),$inputstar,$thatstar,$topicstar);
if ($value==""){
$value=$inputstar[0];
}
return firstsecond($value);
}
elseif (strtoupper($xmlnode["tag"])=="THAT"){
$mynode=upperkeysarray($xmlnode["attributes"]);
//$indexes = $xmlnode["attributes"]["INDEX"];
if ((is_array($mynode))&&(isset($mynode["INDEX"]))){
$indexes = $mynode["INDEX"];
}
else {
$indexes="";
}
$indexes = split (",", $indexes);
if (sizeof($indexes)<2){
$indexes=array();
$indexes[]=1;
$indexes[]=1;
}
return getthat($indexes[0],$indexes[1]);
}
elseif (strtoupper($xmlnode["tag"])=="CONDITION"){
$mynode=upperkeysarray($xmlnode["attributes"]);
// First do multi condition name=value
if ((is_array($mynode))&&(isset($mynode["NAME"]))){
$condname=$mynode["NAME"];
}
else {
$condname = "";
}
if ((is_array($mynode))&&(isset($mynode["VALUE"]))){
$condvalue=$mynode["VALUE"];
}
else {
$condvalue = "";
}
if ((is_array($mynode))&&(isset($mynode["CONTAINS"]))){
$condcontains=$mynode["CONTAINS"];
}
else {
$condcontains = "";
}
if ((is_array($mynode))&&(isset($mynode["EXISTS"]))){
$condexists=$mynode["EXISTS"];
}
else {
$condexists = "";
}
/*
$condname=$mynode["NAME"];
$condvalue=$mynode["VALUE"];
$condcontains=$mynode["CONTAINS"];
$condexists=$mynode["EXISTS"];
*/
// If this is a multi condition
if (($condname!="")&&($condvalue!="")){
if ($condvalue!=""){
$condtype="VALUE";
}
elseif ($condcontains!=""){
$condtype="CONTAINS";
}
elseif ($condexists!=""){
$condtype="EXISTS";
}
if ($condtype=="VALUE"){
$condvalue="^" . str_replace("*","(.*)",$condvalue);
if (eregi($condvalue,bget($condname))){
//if ((bget($condname))==$condvalue){
return recursechildren(realchild($xmlnode),$inputstar,$thatstar,$topicstar);
}
}
}
// Else condname not blank and value is blank then it goes to <li>'s that have conditions in them.
elseif (($condname!="")&&($condvalue=="")){
$children = $xmlnode["children"];
$checkval=bget($condname);
// After a match break. If no match then execute last if no name or val
for ($randomc=0;$randomc<sizeof($children);$randomc++){
if (strtoupper($children[$randomc]["tag"]) == "LI"){
$mynode=upperkeysarray($children[$randomc]["attributes"]);
//$condvalue=$children[$randomc]["attributes"]["VALUE"];
if (!((is_array($mynode))&&(isset($mynode["VALUE"])))){
$mynode["VALUE"]="";
}
$condvalue=$mynode["VALUE"];
$condvalue="^" . str_replace("*","(.*)",$condvalue) . "$";
if ((eregi($condvalue,$checkval))||($condvalue=="^\$")){
return recursechildren(realchild($children[$randomc]),$inputstar,$thatstar,$topicstar);
}
}
}
}
// Else condname and value both blank then the <li>'s inside have both
elseif (($condname=="")&&($condvalue=="")){
$children = $xmlnode["children"];
// After a match break. If no match then execute last if no name or val
for ($randomc=0;$randomc<sizeof($children);$randomc++){
if (strtoupper($children[$randomc]["tag"]) == "LI"){
$mynode=upperkeysarray($children[$randomc]["attributes"]);
if ((is_array($mynode))&&(isset($mynode["NAME"]))){
$condname=$mynode["NAME"];
}
else {
$condname = "";
}
if ((is_array($mynode))&&(isset($mynode["VALUE"]))){
$condvalue=$mynode["VALUE"];
}
else {
$condvalue = "";
}
$condvalue="^" . str_replace("*","(.*)",$condvalue) . "$";
if ((eregi($condvalue,bget($condname)))||(($condvalue=="^\$")&&($condname==""))){
return recursechildren(realchild($children[$randomc]),$inputstar,$thatstar,$topicstar);
}
}
}
}
}
elseif (strtoupper($xmlnode["tag"])=="SYSTEM"){
$command=recursechildren(realchild($xmlnode),$inputstar,$thatstar,$topicstar);
exec($command,$execoutput);
for ($x=0;$x<sizeof($execoutput);$x++){
$allout=$allout . $execoutput[$x];
}
return $allout;
}
// For Javascript to work you need:
// 1. Java.
// 2. PHP compiled with Java support.
// 3. js.jar in your php/java directory.
// (you can get js.jar from the Program D distribution - http://www.alicebot.org)
// 4. php.ini's java.class.path to point to js.jar.
// A much easier alternative is to write PHP code and embed it in <php></php> tags.
/*
elseif (strtoupper($xmlnode["tag"])=="JAVASCRIPT"){
$jscode=recursechildren(realchild($xmlnode),$inputstar,$thatstar,$topicstar);
$context = new Java("org.mozilla.javascript.Context");
$newContext = $context->enter();
$scope = $newContext->initStandardObjects(null);
$script = $jscode;
$evaluate = $newContext->evaluateString($scope, $script, "<cmd>", 1, null);
$context->exit();
return $newContext->toString($evaluate);
}
*/
elseif (strtoupper($xmlnode["tag"])=="PHP"){
$phpcode=recursechildren(realchild($xmlnode),$inputstar,$thatstar,$topicstar);
ob_start();
eval($phpcode);
$evaled = ob_get_contents();
ob_end_clean();
return $evaled;
}
elseif (strtoupper($xmlnode["tag"])=="JUSTBEFORETHAT"){
$indexes=array();
$indexes[]=2;
$indexes[]=1;
return getthat($indexes[0],$indexes[1]);
}
elseif (strtoupper($xmlnode["tag"])=="JUSTTHAT"){
$index=2;
$index=$index-1;
return getinput($index);
}
elseif (strtoupper($xmlnode["tag"])=="BEFORETHAT"){
$index=3;
$index=$index-1;
return getinput($index);
}
elseif (strtoupper($xmlnode["tag"])=="GET_IP"){
return getid();
}
elseif (strtoupper($xmlnode["tag"])=="GETNAME"){
$name="NAME";
return bget($name);
}
elseif (strtoupper($xmlnode["tag"])=="GETSIZE"){
return getsize();
}
elseif (strtoupper($xmlnode["tag"])=="GETTOPIC"){
$name="TOPIC";
return bget($name);
}
elseif (strtoupper($xmlnode["tag"])=="GETVERSION"){
return PROGRAMEVERSION;
}
elseif (substr(strtoupper($xmlnode["tag"]),0,4)=="GET_"){
$name=substr($xmlnode["tag"],4);
return bget($name);
}
elseif (strtoupper($xmlnode["tag"])=="SETNAME"){
$name="NAME";
$value=recursechildren(realchild($xmlnode),$inputstar,$thatstar,$topicstar);
bset($name,$value);
return $value;
}
elseif (strtoupper($xmlnode["tag"])=="SETTOPIC"){
$name="TOPIC";
$value=recursechildren(realchild($xmlnode),$inputstar,$thatstar,$topicstar);
bset($name,$value);
return $value;
}
elseif (substr(strtoupper($xmlnode["tag"]),0,4)=="SET_"){
$name=substr($xmlnode["tag"],4);
$value=recursechildren(realchild($xmlnode),$inputstar,$thatstar,$topicstar);
bset($name,$value);
return $value;
}
elseif (isdeprecated(strtoupper($xmlnode["tag"]),$ttag)){
$name=$ttag;
return botget($name);
}
elseif (iscustomtag(strtoupper($xmlnode["tag"]),$ctfunction)){
return $ctfunction($xmlnode,$inputstar,$thatstar,$topicstar);
}
// Else we do not know how to handle this. Assume it is HTML and just output it.
// This code fixed by Stefan Humnig
else {
$name = $xmlnode["tag"];
$atts=$xmlnode["attributes"];
$atttext="";
if ($atts != NULL)
{
foreach ($atts as $key => $value)
{
$atttext .= " $key=\"$value\"";
}
}
$value="<$name" . $atttext;
if (isset($xmlnode["children"]) || strcmp($xmlnode["value"], "") != 0) {
$value .= ">" . recursechildren(realchild($xmlnode),$inputstar,$thatstar,$topicstar) . "</$name>";
}
else {
$value .= "/>";
}
return $value;
}
}
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -