Hits: 5891

 

Absolute path found. Loading as relative.

 

List

Try: ca/tecreations/ViewFile.php -- Online


<?php

global $CHARS_256;
for($i = 0; $i < 256; $i++) {
    $CHARS_256 .= chr($i);
}

global $DEBUG, $VERBOSE;

//die("FunctionsPHP::TOP: " . "debug: $DEBUG -- verbose: $VERBOSE\")<br />");


if ($DEBUG && $VERBOSE) {
    print("EndsWith('tec8.jar','8.jar'): " . endsWith("tec8.jar","8.jar") . "<br />");
    print("StartsWith('tec8.jar','tec8'): " . startsWith("tec8.jar","tec8") . "<br />");
    print("<br />");
    print("EndsWith('tec8.Jar','8.jar'): " . endsWith("tec8.Jar","8.jar") . "<br />");
    print("StartsWith('Tec8.jar','TeC8'): " . startsWith("Tec8.jar","TeC8") . "<br />");
    print("<br />");
    print("Extension: (tec8.jar): " . getFileExtension("tec8.jar") . "<br />");
    print("Filename: (tec8.jar): " . getFileName("tec8.jar") . "<br />");
}

if ($DEBUG && $VERBOSE) {
    // test
    print("isNumber(123a45) : '" . isNumber("123a45")   . "'<br />\n");
    print("isNumber(12345)  : '" . isNumber("12345")    . "'<br />\n");

    print("Is Hex: '12345'  : '" . isHex("12345")        . "'<br />\n");
    print("Is Hex: '123a45' : '" . isHex("123a45")       . "'<br />\n");
    print("Is Hex: '123f45' : '" . isHex("123f45")       . "'<br />\n");
    print("Is Hex: '123F45' : '" . isHex("123F45")       . "'<br />\n");
    print("Is Hex: '123g45' : '" . isHex("123g45")       . "'<br />\n");

    print("Is Hex: '123u45' : '" . isHex("123u45")       . "'<br />\n");
    print("Is Hex: '123a45z': '" . isHex("123a45z")      . "'<br />\n");
    print("Is Hex: '123a45d': '" . isHex("123a45d")      . "'<br />\n");
    print("Is Hex: '123A45d': '" . isHex("123A45d")      . "'<br />\n");
    print("Is Hex: '123a45D': '" . isHex("123a45D")      . "'<br />\n");
    print("Is Hex: '123A45D': '" . isHex("123A45D")      . "'<br />\n");
    print("Is Hex: 'FFFFFFFFFFFFFFFFFFFFFFFFF': '" . isHex("FFFFFFFFFFFFFFFFFFFFFFFFF")      . "'<br />\n");
    print("Is Hex: 'FFFFFFFFFFFFFFFFFFFFFFFFFt': '" . isHex("FFFFFFFFFFFFFFFFFFFFFFFFFt")      . "'<br />\n");
print("Ok, hang on...<br />\n");
    print("Is Hex: 'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF': '" . isHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF")      . "'<br />\n");
    print("Is Hex: 'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFt': '" . isHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFt")      . "'<br />\n");

    print("<br />And Just to be sure...<br />");
    print("Is Hex: 'FFFFFFFFFFF12345FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'  : '" . isHex("FFFFFFFFFFF12345FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF")      . "'<br />\n");
    print("Is Hex: 'FFFFFFaBcDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF': '" . isHex("FFFFFFaBcDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF")      . "'<br />\n");
    print("Is Hex: 'FFFFFFFFFFFFFFFFFFFFFFFF2FFFFFFFFFF91FFFFFFFFFFFFFFFFfedFFFFFFFFFFFFFfffffF'  : '" . isHex("FFFFFFFFFFFFFFFFFFFFFFFF2FFFFFFFFFF91FFFFFFFFFFFFFFFFfedFFFFFFFFFFFFFfffffF")      . "'<br />\n");
    print("Is Hex: 'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFgFFFFFFFFFFFFFFFFFFFFF'  : '" . isHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFgFFFFFFFFFFFFFFFFFFFFF")      . "'<br />\n");
print("Ok, hang on...<br />\n");
    print("Is Hex: 'FFFFFFFFFFFFFFFFFFFFFFFF2FFFFFFFFFF91FFFFFFFFFFFFFFFFfediFFFFFFFFFFFFFfffffF'  : '" . isHex("FFFFFFFFFFFFFFFFFFFFFFFF2FFFFFFFFFF91FFFFFFFFFFFFFFFFfediFFFFFFFFFFFFFfffffF")      . "'<br />\n");
    print("Is Hex: 'FFFFFFFFFFFFFFFFFFFFFFFF2FFFFFFFFFF91FFFFFFFFFFFFFFFFfedFiFFFFFFFFFFFFfffffF'  : '" . isHex("FFFFFFFFFFFFFFFFFFFFFFFF2FFFFFFFFFF91FFFFFFFFFFFFFFFFfedFiFFFFFFFFFFFFfffffF")      . "'<br />\n");
}

function contains($string = "", $char = "") {
    $contains = false;
    $parts = str_split($string);
    foreach ($parts as $ch) {
        if ($ch === $char) return true;
           
    }
    return false;
}

function containsJavaCode($string = "") {
    $containsCode = false;
    $parts = str_split($string);
    foreach ($parts as $char) {
        if ($char == '\'' ||
            $char == '\"' ||
            $char == '\\' ||
            $char == '\n' ||
            $char == '\r' ||
            $char == '\t' ||
            $char == '[' ||
            $char == ']' ||
            $char == '{' ||
            $char == '}' ||
            $char == '`' ||
            $char == '!' ||
            $char == '#' ||
            $char == '%' ||
            $char == '^' ||
            $char == '&' ||
            $char == '*' ||
            $char == '(' ||
            $char == ')' ||
            $char == '=' ||
            $char =='|' ||
            $char == ',' ||
            $char == '<' ||
            $char == '>' ||
            $char == '/' ||
            $char == '?' ||
            $char == ';' ||
            $char == ':') $containsCode = true;
// "It" has to start somewhere... here is as good as anywhere else.
        } 
        return $containsCode;
    }

function containsJavaOperator($string = "") {
}
 
function containsJavaSeparator($string = "") {
}

function containsUnicode($javaToken = "") {
    $contains = false;
    $parts = str_split($javaToken);
    // This line shouldn't be legal, a Unicode Sequence in Java should be "\u12345"or "\123?" -- Please verify: Java Language Specification
    if ($parts[0] === "\\" && ($parts[1] === "u" | $parts[1] === "U")) {
    }   // do nothing, continue...
    // Now test for digits 0-[3|4]),if so, return true;
    if (count($parts) == 6) {
        for($i = 2; $i < 5;$i++) {
            if (hasDigit($parts[$i])) return true;             
        }
    } else if (count($parts) == 7) {
        for($i = 2; $i < 6;$i++) {
            if (hasDigit($parts[$i])) return true;             
        }
    }
    // If you got here, it's not a Java/Tim Unicode Item.
    return false;
}

function endsWith($src = "", $ending = "") {
    global $DEBUG, $VERBOSE;
    if ($src == "") die("Programming error: FunctionsPHP.php::endsWith($" . "src is empty)");
    if ($ending == "") return true;
    $srcParts = str_split($src);
    $endingParts = str_split($ending);
    for($i = 1; $i <= count($endingParts); $i++) {
//            $srcPart = substr($src, count($srcParts) - $i, 1);
//            $endingPart = substr($ending, count($endingParts) - $i, 1);
        $srcPart = $srcParts[count($srcParts) - $i];
        $endingPart = $endingParts[count($endingParts) - $i];
        if ($DEBUG && $VERBOSE) print("endsWith(): $src: $ending: $i, $srcPart, $endingPart<br />");
        if (!($srcPart === $endingPart)) return false;
    }
    return true;
}

function getExtension($name = "") {
    $extension = "";
    if (hasDot($name)) {
        for($i = strlen($name); $i >= 0; $i--) {
            $char = substr($name, $i,1);
            if ($char == ".") return $extension;
            else $extension = $char . $extension;
//print("extension: $extension<br />");
        }
    } 
    return "";
}

function getFileExtension($name = "") {
    return getExtension($name);
}

function getFileLines($path = "") {
    global $TEC_PREFIX_DIR;
    if (empty($path)) {
        die("$PREFIX_DIR\FunctionsPHP.getFileLines() : Path cannot be set to empty."); // programming error
    }
    $text = file($_SERVER['DOCUMENT_ROOT'] . "/" . $path);
    for($i = 0; $i < count($text);$i++) {
        $text[$i] = rightTrimNewLine($text[$i]);
    }
//print_r($text);
    return $text;
}        

function getFileText($path = "") {
     $lines = getFileLines($path);
     $text = "";
     for($i = 0; $i < count($lines); $i++) {
         $text .= $lines[$i] . "\n";
     }
     return $text;
}

function getFileName($name = "") {
    if ($name == "") die("Programming error: FunctionsPHP.php::getFileName($name is empty)");
    $filename = "";
    if (hasDot($name)) { // if not hasDot, return the full $name, like 'keystore'
        for($i = 0; $i <= strlen($name); $i++) {
            $char = substr($name, $i,1);
            if (hasDot($char)) break(1); // found the dot, so exit the loop
            else $filename = $filename . $char; // not a dot -- add to $filename
        }
    } else {
        return $name;
    }
    return $filename;
}

function getFileSize($name = "") {
    return filesize($name);
}

function getLines($path = "") {
     return getFileLines($path);
}

function getMinimalMimeType($fname) {
    $fh=fopen($fname,'rb');
    if ($fh) { 
        $bytes6=fread($fh,6);
        fclose($fh); 
        if ($bytes6===false) return false;
        if (substr($bytes6,0,3)=="\xff\xd8\xff") return 'image/jpeg';
        if ($bytes6=="\x89PNG\x0d\x0a") return 'image/png';
        if ($bytes6=="GIF87a" || $bytes6=="GIF89a") return 'image/gif';
        return 'application/octet-stream'; // something binary
    }
    return false;
}

function getRandom256($count) { // 0 to 256;
    global $CHARS_256;
    $random = "";
    for($i = 0; $i < $count;$i++) {
        $random .= $chars[rand(0,strlen($chars))];
    }
    return $random;
}

function getRandomAlphanumeric($count = 0) {
    if ($count == 0) return "";
    $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $str = "";
    for($i = 0; $i < $count;$i++) {
       $str .= $characters[rand(0, strlen($characters) - 1)];
    }
    return $str;
}

function getRandomHexLower($count = 0) {
    if ($count == 0) return "";
    $characters = '0123456789abcdef';
    $str = "";
    for($i = 0; $i < $count;$i++) {
       $str .= $characters[rand(0, strlen($characters) - 1)];
    }
    return $str;
}

function getRandomHexMixed($count = 0) {
    if ($count == 0) return "";
    $characters = '0123456789abcdefABCDEF';
    $str = "";
    for($i = 0; $i < $count;$i++) {
        $str .= $characters[rand(0, strlen($characters) - 1)];
    }
    return $str;
}

function getRandomHexUpper($count = 0) {
    if ($count == 0) return "";
    $characters = '0123456789ABCDEF';
    $str = "";
    for($i = 0; $i < $count;$i++) {
       $str .= $characters[rand(0, strlen($characters) - 1)];
    }
    return $str;
}

function hasDigit($string = "", $char = "") {
    $parts = str_split($string);
    for($i = 0; $i < count($parts);$i++) {
         if ((int)$parts[$i] >= 0 && (int)$parts[$i] <= 9) return true;
    }
    return false;
}
 
function hasDot($str = "") {
    for($i = 0; $i < strlen($str);$i++) {
        if (substr($str,$i,1) == ".") return true;
    }
    return false;
}

function indexOf($str, $sub, $offset = 0) {
    return strpos($str,$sub,$offset);
}

function isAdmin() {
    global $ADMIN_LEVEL;
    if (isset($_SESSION['level']) && $_SESSION['level'] == $ADMIN_LEVEL) return true;
}

function isAToF($char = "") {
    if ($char == "") die("Programming Error: FunctionsPHP.php::isAToF($" . "char is empty)");
    if ($char == 'A' | $char === 'a') return true;
    if ($char == 'B' | $char === 'b') return true;
    if ($char == 'C' | $char === 'c') return true;
    if ($char == 'D' | $char === 'd') return true;
    if ($char == 'E' | $char === 'e') return true;
    if ($char == 'F' | $char === 'f') return true;
    return false;
}

function isDot($str = "") {
    return ($str == ".");
}

function isDotDot($str = "") {
     return ($str == "..");
}

function isHex($string = "") {
    if ($string == "") die("$TEC_PREFIX_DIR\Functions.php::isHex() : Programming error. Missing target string.");
    $parts = str_split($string);
    foreach ($parts as $part) {
        $goodSoFar = false;
        if (isNumber($part) || isAToF($part)) { // must be one of either
            $goodSoFar = true;
        }
        if (!$goodSoFar) return false; 
    }
    return true;
}

function isImage($path = "") {
    $minimime = getMinimalMimeType($path);
    if ($minimime == "image/jpeg") return true;
    if ($minimime == "image/png") return true;
    if ($minimime == "image/gif") return true;
}

function isLoggedIn() { 
    if (!(isset($_SESSION['uid']) && isset($_SESSION['level']) &&
        !empty($_SESSION['uid']) && !empty($_SESSION['level']))) {
        return false;
    }
    return true;
}

function isLower($string = "") {
    $non_numeric = false;
    $parts = str_split($string);
    foreach ($parts as $char) {
        $forRun = false;
        if (
            $char == 'a' |
            $char == 'b' |
            $char == 'c' |
            $char == 'd' |
            $char == 'e' |
            $char == 'f' |
            $char == 'g' |
            $char == 'h' |
            $char == 'i' |
            $char == 'j' |
            $char == 'k' |
            $char == 'l' |
            $char == 'm' |
            $char == 'n' |
            $char == 'o' |
            $char == 'p' |
            $char == 'q' |
            $char == 'r' |
            $char == 's' |
            $char == 't' |
            $char == 'u' |
            $char == 'v' |
            $char == 'w' |
            $char == 'x' |
            $char == 'y' |
            $char == 'z'
        ) {
            $forRun = true;
        } else {
            $forRun =  false; // short circuit if not a lowercase letter
        }
        if (!$forRun) return false; // IF SHORT CIRCUITED, return false, NOT LOWERCASE.
    }
    return true; // all parts are lowercase
}

function isNumber($string = "") {
    $non_numeric = false;
    $parts = str_split($string);
    foreach ($parts as $char) {
        $forRun = false;
        if (
            $char == '0' |
            $char == '1' |
            $char == '2' |
            $char == '3' |
            $char == '4' |
            $char == '5' |
            $char == '6' |
            $char == '7' |
            $char == '8' |
            $char == '9'
        ) {
            $forRun = true;
        } else {
            $forRun =  false; // short circuit if not a number
        }
        if (!$forRun) return false; // IF SHORT CIRCUITED, return false, NOT A NUMBER.
    }
    return true; // all parts are digits
}

function isPHP($name = "") {
    $extension = getExtension($name);
    if (to_lower($extension) == "php") return true;
    return false;
}

function isTextFile($path = "") {
    $extension = getExtension($path);
    $extension = strtolower($extension);
    if ($extension == "c") return true;
    if ($extension == "cpp") return true;
    if ($extension == "h") return true;
    if ($extension == "html") return true;
    if ($extension == "htmx") return true;
    if ($extension == "java") return true;
    if ($extension == "md") return true;
    if ($extension == "MF") return true;
    if ($extension == "php") return true;
    if ($extension == "pl") return true;
    if ($extension == "properties") return true;
    if ($extension == "py") return true;
    if ($extension == "sgml") return true;
    if ($extension == "sh") return true;
    if ($extension == "txt") return true;
    if ($extension == "uml") return true;
    if ($extension == "vrml") return true;
    if ($extension == "xml") return true;
    return false;
}

function isUpper($string = "") {
    $non_numeric = false;
    $parts = str_split($string);
    foreach ($parts as $char) {
        $forRun = false;
        if (
            $char == 'A' |
            $char == 'B' |
            $char == 'C' |
            $char == 'D' |
            $char == 'E' |
            $char == 'F' |
            $char == 'G' |
            $char == 'H' |
            $char == 'I' |
            $char == 'J' |
            $char == 'K' |
            $char == 'L' |
            $char == 'M' |
            $char == 'N' |
            $char == 'O' |
            $char == 'P' |
            $char == 'Q' |
            $char == 'R' |
            $char == 'S' |
            $char == 'T' |
            $char == 'U' |
            $char == 'V' |
            $char == 'W' |
            $char == 'X' |
            $char == 'Y' |
            $char == 'Z'
        ) {
            $forRun = true;
        } else {
            $forRun =  false; // short circuit if not an uppercase letter
        }
        if (!$forRun) return false; // IF SHORT CIRCUITED, return false, NOT UPPERCASE.
    }
    return true; // all parts are uppercase
}

function rightTrim($string, $count = 1) {
    return substr($string, 0, -$count);
}

function rightTrimNewLine($string) {
    if (endsWith($string,"\n")) {
        return rightTrim($string);
    } else {
        return $string;
    }
}

function startsWith($src = "", $prefix = "") {
    global $DEBUG, $VERBOSE;
    if ($src == "") die("Programming error: FunctionsPHP.php:::startsWith($" . "src is empty)");
    if ($prefix == "") return true;
    $srcParts = str_split($src);
    $prefixParts = str_split($prefix);
    for($i = 0; $i <count($prefixParts); $i++) {
        // we confirmed it works in endsWith(), so do the lesser volume of code
        //$srcPart = substr($src, $i, 1);
        //$prefixPart = substr($prefix, $i, 1);
        $srcPart = $srcParts[$i];
        $prefixPart = $prefixParts[$i];
        if ($DEBUG && $VERBOSE) print("startsWith(): $src: $prefix: $i, $srcPart, $prefixPart<br />");
        if (!($srcPart === $prefixPart)) return false;
    }
    return true;
}

function startsWith2($haystack, $needle) {
    if (strlen($haystack) >= strlen($needle)) {
        if (!(substr($haystack,0,strlen($needle) === $needle))) {
            return false;
        }
    }
    return true;
}

function substring_from($haystack, $fromIndex = -999) {
    if ($fromIndex == -999) {
        die("substring_from: fromIndex must be specified");
    }
    $s = "";
    $parts = str_split($haystack);
    for($i = $fromIndex; $i < strlen($haystack);$i++) {
        $s .= $parts[$i];
    }
    return $s;
}

function substring_between($haystack, $fromIndex = 0, $endIndex = "unset") {
    $parts = explode($haystack);
    if ($endIndex == "unset") $endIndex = count($parts) - 1;
    for($i = $fromIndex;$i <= $endIndex;$i++) {
        $s .= $parts[$i];
    }
    return $s;
}


function Unauthorized() {
    global $TEC_PREFIX_DIR;
    header("Location: /$TEC_PREFIX_DIRApps/Unauthorized.php?query=" . urlencode($_SERVER['QUERY_STRING']) . "&uri=" . $_SERVER['PHP_SELF']);
}