コード例 #1
0
echo $parse_this;
$triggers = array("\\" => "escape", '"' => "doublequote", "'" => "singlequote", '$' => "dollarsign");
// first character intentionally left blank to add 1 to position count of the
// rest
$alpha = " abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789";
$stored = "";
for ($i = 0; $i < strlen($parse_this); $i++) {
    $char = $parse_this[$i];
    if (isset($triggers[$char])) {
        $state->trigger($triggers[$char]);
    } else {
        $state->trigger(strpos($alpha, $char) ? "alpha" : "nonalpha");
    }
    if (!$state->changed() || $state->previous() == "escaped") {
        $stored .= $char;
    } elseif ($state->state() == "escaped") {
    } else {
        switch ($state->previous()) {
            case "idle":
                $stored = "";
                break;
            case "symbol":
                echo "--> symbol: " . $stored . "\n";
                $stored = "";
                break;
            case "variable":
                echo "--> variable: " . $stored . "\n";
                $stored = "";
                break;
            case "doublequoted":
                echo "--> string: \"" . $stored . "\"\n";