--- /dev/null
+<?php\r
+\r
+//READLINE Function\r
+function readline($prompt="") {\r
+ echo $prompt;\r
+ \r
+ /*\r
+ $ifp = fopen("php://stdin", "r"); //PHP <= 4\r
+ $line = fgets($ifp, 999); //PHP <= 4\r
+ fclose($ifp); //PHP <= 4\r
+ */\r
+ \r
+ $line = fgets(STDIN, 999); //PHP >= 5\r
+ return trim($line);\r
+}\r
+//READLINE End\r
+\r
+//Hobit-01.txt\r
+\r
+//Settings:\r
+$prompt = "\n> ";\r
+$random_out = "Random judged: ";\r
+$nextf_out = "\nNext file: ";\r
+exec("chcp 1250"); //Only Windows - set CP1250 - national alphabets - needed for Cestina ;)\r
+\r
+//CODE\r
+//Init:\r
+$game = ""; //Hra natazena v pameti\r
+$file = ""; //Posledni otevreny soubor\r
+$nextf = ""; //Soubor nacteny z odkazu\r
+$pos = 2; //Pozice ve hre\r
+$histpos = "1";\r
+$hist[$histpos] = "START";\r
+\r
+\r
+echo(\r
+"OGB Engine 0.6\n".\r
+"Harvie 2oo7\n".\r
+"http://gbook.wz.cz/\n".\r
+"-----------------------\n".\r
+"Type h[ENTER] for help.\n"\r
+);\r
+\r
+while(1) {\r
+\r
+ $in_line = readline($prompt); \r
+ $in_cmds = explode(" ", $in_line);\r
+ $in_cmds[0] = strtolower($in_cmds[0]);\r
+ \r
+ //h - print help\r
+ if ($in_cmds[0] == "h") {\r
+ echo(\r
+ "HELP:\n".\r
+ "h - Show help\n".\r
+ "f - Show files\n".\r
+ "l file - Load file\n".\r
+ "l URL - Load file from HTTP or FTP\n".\r
+ "y - set CP 1250 ONLY WINDOWS!!! (for some national characters)\n".\r
+ "# - Go to line #\n".\r
+ "2 - Go to start\n".\r
+ "p - Print history\n".\r
+ "n - Load next file from link\n".\r
+ "r - Reload file\n".\r
+ "c - Close file\n".\r
+ "q - Quit\n"\r
+ ); \r
+ }\r
+\r
+ //l - load game\r
+ if ($in_cmds[0] == "l") {\r
+ if ( file_exists( trim($in_cmds[1]) ) || strpos(" ".$in_cmds[1], ":") )\r
+ {\r
+ if ( strpos(" ".$in_cmds[1], ":") ) {\r
+ echo("DOWNLOADING...\n");\r
+ }\r
+ $game = file( trim($in_cmds[1]) );\r
+ $file = trim($in_cmds[1]);\r
+ $histpos++;\r
+ $hist[$histpos] = "\nLOAD: ".trim($in_cmds[1])."\n";\r
+ echo("LOADED: $in_cmds[1]\n");\r
+ print_r(explode("|", $game[0]));\r
+ echo("\n");\r
+ }\r
+ else\r
+ {\r
+ echo("CAN'T LOAD: $in_cmds[1]\n");\r
+ }\r
+ }\r
+ \r
+ //r - reload\r
+ if ($in_cmds[0] == "r") {\r
+ $histpos++;\r
+ $hist[$histpos] = "RELOAD";\r
+ $game = file($file);\r
+ }\r
+ \r
+ //p - history\r
+ if ($in_cmds[0] == "p") {\r
+ echo( implode(";", $hist) );\r
+ }\r
+ \r
+ //c - close\r
+ if ($in_cmds[0] == "c") {\r
+ $histpos++;\r
+ $hist[$histpos] = "CLOSE\n";\r
+ $game = ("");\r
+ }\r
+ \r
+ //# - show line\r
+ if ( is_numeric( trim($in_cmds[0]) ) ) {\r
+ $pos = round(trim($in_cmds[0]));\r
+ $posi = ($pos - 1);\r
+ if(isset($game[$posi])) {\r
+\r
+ //history\r
+ $histpos++;\r
+ $hist[$histpos] = $pos;\r
+\r
+ //nextf\r
+ if ( strpos( (" ".$game[$posi]), "%%" ) ) {\r
+ $nextf = explode("%%", $game[$posi]);\r
+ $nextf = explode("|", $nextf[1]);\r
+ $nextf = $nextf[0];\r
+ }\r
+ \r
+ //rnd\r
+ $rnd = "";\r
+ if ( strpos( (" ".$game[$posi]), "{" ) ) {\r
+ $rnd = explode("{", $game[$posi]);\r
+ $rnd = explode("}", $rnd[1]);\r
+ $rnd = explode("\\\\", $rnd[0]);\r
+ $rnd = $rnd[rand( 0, (sizeof($rnd) - 1) )];\r
+ $rnd = ($random_out.$rnd);\r
+ }\r
+ \r
+ //out\r
+ echo("$pos: ". $game[$posi]);\r
+ \r
+ //rnd\r
+ echo ($rnd);\r
+ \r
+ //nextf\r
+ if( is_file($nextf) ) {\r
+ echo($nextf_out.$nextf."\nType n[ENTER]2[ENTER] to go on.");\r
+ }\r
+ }\r
+ }\r
+ \r
+ //f - files\r
+ if ( $in_cmds[0] == "f" ) {\r
+ echo("FILES:\n\n");\r
+ $dfp=opendir('.');\r
+ while (false!==($file = readdir($dfp))) {\r
+ if ($file != "." && $file != "..") {\r
+ echo "$file\n";\r
+ }\r
+ }\r
+ closedir($dfp);\r
+ }\r
+ \r
+ //y - CP 1250 (needed for Czech language)\r
+ if ( $in_cmds[0] == "y" ) {\r
+ system("chcp 1250"); //Only Windows\r
+ }\r
+ \r
+ //i - info\r
+ if ($in_cmds[0] == "i") {\r
+ print_r(explode("|", $game[0]));\r
+ echo("\n");\r
+ }\r
+ \r
+ //n - nextfile\r
+ if ($in_cmds[0] == "n" && is_file($nextf) ) {\r
+ $game = file($nextf);\r
+ $file = $nextf;\r
+ $histpos++;\r
+ $hist[$histpos] = "\n\r
+ NEXTF: $nextf\n";\r
+ $nextf = "";\r
+ }\r
+ \r
+ //q - quit\r
+ if ($in_cmds[0] == "q") {\r
+ die("Exited by user at $file - $pos.\n");\r
+ }\r
+\r
+}\r
+\r
+?>\r