Linux ns1.utparral.edu.mx 6.8.0-79-generic #79~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 15 16:54:53 UTC 2 x86_64
Apache/2.4.58 (Unix) OpenSSL/1.1.1w PHP/8.2.12 mod_perl/2.0.12 Perl/v5.34.1
: 10.10.1.9 | : 10.10.1.254
Cant Read [ /etc/named.conf ]
daemon
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
README
+ Create Folder
+ Create File
/
opt /
lampp /
lib /
php /
[ HOME SHELL ]
Name
Size
Permission
Action
.channels
[ DIR ]
drwxr-xr-x
.registry
[ DIR ]
drwxr-xr-x
Archive
[ DIR ]
drwxr-xr-x
Auth
[ DIR ]
drwxr-xr-x
Benchmark
[ DIR ]
drwxr-xr-x
build
[ DIR ]
drwxr-xr-x
Cache
[ DIR ]
drwxr-xr-x
Console
[ DIR ]
drwxr-xr-x
Contact
[ DIR ]
drwxr-xr-x
Crypt
[ DIR ]
drwxr-xr-x
data
[ DIR ]
drwxr-xr-x
doc
[ DIR ]
drwxr-xr-x
example
[ DIR ]
drwxr-xr-x
extensions
[ DIR ]
drwxr-xr-x
File
[ DIR ]
drwxr-xr-x
fonts
[ DIR ]
drwxr-xr-x
FSM
[ DIR ]
drwxr-xr-x
HTML
[ DIR ]
drwxr-xr-x
HTTP
[ DIR ]
drwxr-xr-x
I18N
[ DIR ]
drwxr-xr-x
Image
[ DIR ]
drwxr-xr-x
Log
[ DIR ]
drwxr-xr-x
Mail
[ DIR ]
drwxr-xr-x
Math
[ DIR ]
drwxr-xr-x
MDB
[ DIR ]
drwxr-xr-x
MDB2
[ DIR ]
drwxr-xr-x
MP3
[ DIR ]
drwxr-xr-x
Net
[ DIR ]
drwxr-xr-x
Numbers
[ DIR ]
drwxr-xr-x
OS
[ DIR ]
drwxr-xr-x
Pager
[ DIR ]
drwxr-xr-x
Payment_Clieop
[ DIR ]
drwxr-xr-x
PEAR
[ DIR ]
drwxr-xr-x
PHP
[ DIR ]
drwxr-xr-x
PHPUnit
[ DIR ]
drwxr-xr-x
Science
[ DIR ]
drwxr-xr-x
Stream
[ DIR ]
drwxr-xr-x
Structures
[ DIR ]
drwxr-xr-x
SymfonyComponents
[ DIR ]
drwxr-xr-x
System
[ DIR ]
drwxr-xr-x
test
[ DIR ]
drwxr-xr-x
Text
[ DIR ]
drwxr-xr-x
Tree
[ DIR ]
drwxr-xr-x
Var_Dump
[ DIR ]
drwxr-xr-x
XML
[ DIR ]
drwxr-xr-x
.depdb
30.49
KB
-rw-r--r--
.depdblock
0
B
-rw-r--r--
.filemap
178.4
KB
-rw-r--r--
.lock
0
B
-rw-r--r--
Auth.php
38.4
KB
-rw-r--r--
Cache.php
10.78
KB
-rw-r--r--
Cezpdf.php
80.11
KB
-rw-r--r--
Contact_Vcard_Build.php
929
B
-rw-r--r--
Contact_Vcard_Parse.php
927
B
-rw-r--r--
Cpdf.php
149.29
KB
-rw-r--r--
fpdf.php
45.98
KB
-rwxrwxrwx
FSM.php
10.72
KB
-rw-r--r--
HTTP.php
17.95
KB
-rw-r--r--
Log.php
26.37
KB
-rw-r--r--
Mail.php
9.65
KB
-rw-r--r--
MDB2.php
149.14
KB
-rw-r--r--
Pager.php
9.05
KB
-rw-r--r--
pearcmd.php
14.49
KB
-rw-r--r--
PEAR.php
35.32
KB
-rw-r--r--
peclcmd.php
1.08
KB
-rw-r--r--
System.php
20.21
KB
-rw-r--r--
Var_Dump.php
20.38
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : FSM.php
<?php /* vim: set expandtab softtabstop=4 tabstop=4 shiftwidth=4: */ /** * Copyright (c) 2002-2011 Jon Parise <jon@php.net> * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to * deal in the Software without restriction, including without limitation the * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or * sell copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS * IN THE SOFTWARE. * * $Id: FSM.php 308377 2011-02-16 04:51:20Z jon $ * * @package FSM */ /** * This class implements a Finite State Machine (FSM). * * In addition to maintaining state, this FSM also maintains a user-defined * payload, therefore effectively making the machine a Push-Down Automata * (a finite state machine with memory). * * This code is based on Noah Spurrier's Finite State Machine (FSM) submission * to the Python Cookbook: * * http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/146262 * * @author Jon Parise <jon@php.net> * @version $Revision: 308377 $ * @package FSM * @license http://www.opensource.org/licenses/mit-license.php MIT License * * @example rpn.php A Reverse Polish Notation (RPN) calculator. */ class FSM { /** * Represents the initial state of the machine. * * @var string * @see $_currentState * @access private */ var $_initialState = ''; /** * Contains the current state of the machine. * * @var string * @see $_initialState * @access private */ var $_currentState = ''; /** * Contains the payload that will be passed to each action function. * * @var mixed * @access private */ var $_payload = null; /** * Maps (inputSymbol, currentState) --> (action, nextState). * * @var array * @see $_initialState, $_currentState * @access private */ var $_transitions = array(); /** * Maps (currentState) --> (action, nextState). * * @var array * @see $_inputState, $_currentState * @access private */ var $_transitionsAny = array(); /** * Contains the default transition that is used if no more appropriate * transition has been defined. * * @var array * @access private */ var $_defaultTransition = null; /** * This method constructs a new Finite State Machine (FSM) object. * * In addition to defining the machine's initial state, a "payload" may * also be specified. The payload represents a variable that will be * passed along to each of the action functions. If the FSM is being used * for parsing, the payload is often a array that is used as a stack. * * @param string $initialState The initial state of the FSM. * @param mixed $payload A payload that will be passed to each * action function. */ function FSM($initialState, &$payload) { $this->_initialState = $initialState; $this->_currentState = $initialState; $this->_payload = &$payload; } /** * This method returns the machine's current state. * * @return string The machine's current state. * * @since 1.3.1 */ function getCurrentState() { return $this->_currentState; } /** * This method resets the FSM by setting the current state back to the * initial state (set by the constructor). */ function reset() { $this->_currentState = $this->_initialState; } /** * This method adds a new transition that associates: * * (symbol, currentState) --> (nextState, action) * * The action may be set to NULL, in which case the processing routine * will ignore the action and just set the next state. * * @param string $symbol The input symbol. * @param string $state This transition's starting state. * @param string $nextState This transition's ending state. * @param string $action The name of the function to invoke * when this transition occurs. * * @see addTransitions() */ function addTransition($symbol, $state, $nextState, $action = null) { $this->_transitions["$symbol,$state"] = array($nextState, $action); } /** * This method adds the same transition for multiple different symbols. * * @param array $symbols A list of input symbols. * @param string $state This transition's starting state. * @param string $nextState This transition's ending state. * @param string $action The name of the function to invoke * when this transition occurs. * * @see addTransition() */ function addTransitions($symbols, $state, $nextState, $action = null) { foreach ($symbols as $symbol) { $this->addTransition($symbol, $state, $nextState, $action); } } /** * This method adds an array of transitions. Each transition is itself * defined as an array of values which will be passed to addTransition() * as parameters. * * @param array $transitions An array of transitions. * * @see addTransition * @see addTransitions * * @since 1.2.4 */ function addTransitionsArray($transitions) { foreach ($transitions as $transition) { call_user_func_array(array($this, 'addTransition'), $transition); } } /** * This method adds a new transition that associates: * * (currentState) --> (nextState, action) * * The processing routine checks these associations if it cannot first * find a match for (symbol, currentState). * * @param string $state This transition's starting state. * @param string $nextState This transition's ending state. * @param string $action The name of the function to invoke * when this transition occurs. * * @see addTransition() */ function addTransitionAny($state, $nextState, $action = null) { $this->_transitionsAny[$state] = array($nextState, $action); } /** * This method sets the default transition. This defines an action and * next state that will be used if the processing routine cannot find a * suitable match in either transition list. This is useful for catching * errors caused by undefined states. * * The default transition can be removed by setting $nextState to NULL. * * @param string $nextState The transition's ending state. * @param string $action The name of the function to invoke * when this transition occurs. */ function setDefaultTransition($nextState, $action) { if (is_null($nextState)) { $this->_defaultTransition = null; return; } $this->_defaultTransition = array($nextState, $action); } /** * This method returns (nextState, action) given an input symbol and * state. The FSM is not modified in any way. This method is rarely * called directly (generally only for informational purposes). * * If the transition cannot be found in either of the transitions lists, * the default transition will be returned. Note that it is possible for * the default transition to be set to NULL. * * @param string $symbol The input symbol. * * @return mixed Array representing (nextState, action), or NULL if the * transition could not be found and not default * transition has been defined. */ function getTransition($symbol) { $state = $this->_currentState; if (!empty($this->_transitions["$symbol,$state"])) { return $this->_transitions["$symbol,$state"]; } elseif (!empty($this->_transitionsAny[$state])) { return $this->_transitionsAny[$state]; } else { return $this->_defaultTransition; } } /** * This method is the main processing routine. It causes the FSM to * change states and execute actions. * * The transition is determined by calling getTransition() with the * provided symbol and the current state. If no valid transition is found, * process() returns immediately. * * The action callback may return the name of a new state. If one is * returned, the current state will be updated to the new value. * * If no action is defined for the transition, only the state will be * changed. * * @param string $symbol The input symbol. * * @see processList() */ function process($symbol) { $transition = $this->getTransition($symbol); /* If a valid array wasn't returned, return immediately. */ if (!is_array($transition) || (count($transition) != 2)) { return; } /* Update the current state to this transition's exit state. */ $this->_currentState = $transition[0]; /* If an action for this transition has been specified, execute it. */ if (!empty($transition[1])) { $state = call_user_func_array($transition[1], array($symbol, &$this->_payload)); /* If a new state was returned, update the current state. */ if (!empty($state) && is_string($state)) { $this->_currentState = $state; } } } /** * This method processes a list of symbols. Each symbol in the list is * sent to process(). * * @param array $symbols List of input symbols to process. */ function processList($symbols) { foreach ($symbols as $symbol) { $this->process($symbol); } } }
Close