Heray-Was-Here
Server : Apache
System : Linux info 3.0 #1337 SMP Tue Jan 01 00:00:00 CEST 2000 all GNU/Linux
User : u81562609 ( 7464296)
PHP Version : 7.2.34
Disable Function : NONE
Directory :  /homepages/oneclick/concrete5/5.6.3.1/34/scripts/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /homepages/oneclick/concrete5/5.6.3.1/34/scripts/functions.php
<?php


function splitSQL($sql)
{
    $tokens = explode(';', $sql);
    //$sql = '';
    $output = array();
    $matches = array();
    $token_count = count($tokens);

    for ($i = 0; $i < $token_count; $i++) {
        if ($i != $token_count-1 || strlen($tokens[$i] > 0)) {

            $total_quotes = preg_match_all("/'/", $tokens[$i], $matches);
            $escaped_quotes = preg_match_all("/(?<!\\\\)(\\\\\\\\)*\\\\'/", $tokens[$i], $matches);
            $unescaped_quotes = $total_quotes - $escaped_quotes;

            if (($unescaped_quotes % 2) == 0) {

                $output[] = $tokens[$i];
                $tokens[$i] = '';

            } else {

                $temp = $tokens[$i] . ';';
                $tokens[$i] = '';
                $complete_stmt = false;

                for ($j = $i + 1; (!$complete_stmt && ($j < $token_count)); $j++) {

                    $total_quotes = preg_match_all("/'/", $tokens[$j], $matches);
                    $escaped_quotes = preg_match_all("/(?<!\\\\)(\\\\\\\\)*\\\\'/", $tokens[$j], $matches);
                    $unescaped_quotes = $total_quotes - $escaped_quotes;

                    if (($unescaped_quotes % 2) == 1) {

                        $output[] = $temp . $tokens[$j];
                        $tokens[$j] = '';
                        $temp = '';
                        $complete_stmt = true;
                        $i = $j;
                    } else {

                        $temp .= $tokens[$j] . ';';
                        $tokens[$j] = '';
                    }
                }
            }
        }
    }

    return $output;
}
function selectSQL($query)
{
    $link = mysqli_connect(DB_MAIN_HOST, DB_MAIN_LOGIN, DB_MAIN_PASSWORD, DB_MAIN_NAME, (int)DB_MAIN_PORT, DB_MAIN_SOCKET);

    if (!$link) {
        echo mysqli_connect_error();
        exit(1);
    }

    $result = mysqli_query($link, $query, MYSQLI_STORE_RESULT);

    if (false === $result) {
        echo mysqli_error($link);
    }

    $row = mysqli_fetch_array($result, MYSQLI_BOTH);

    if (null === $row) {
        echo "[ERROR]: The query you have requested has no result.\n";
        exit(1);
    }

    mysqli_free_result($result);
    mysqli_close($link);

    return $row[0];
}
function importSQL($schema)
{
    $schema = trim($schema);
    $schema = removeRemarks($schema);
    $schema = removeComments($schema);
    $schema = splitSQL($schema);

    $link = mysqli_connect(DB_MAIN_HOST, DB_MAIN_LOGIN, DB_MAIN_PASSWORD, DB_MAIN_NAME, (int)DB_MAIN_PORT, DB_MAIN_SOCKET);

    if (!$link) {
        echo mysqli_connect_error();
        exit(1);
    }

    set_time_limit(0);
    ini_set('memory_limit', '4096M');

    foreach ($schema as $query) {
        $query .= ';';
        $result = mysqli_query($link, $query, MYSQLI_STORE_RESULT);
        if (false === $result) {
            echo mysqli_error($link);
            exit(1);
        }
    }
}
function dropSQL(){

    $link = mysqli_connect(DB_MAIN_HOST, DB_MAIN_LOGIN, DB_MAIN_PASSWORD, DB_MAIN_NAME, (int)DB_MAIN_PORT, DB_MAIN_SOCKET);

    if (!$link) {
        echo mysqli_connect_error();
        exit(1);
    }

    $query = "SHOW TABLES LIKE " . "\"" . DB_MAIN_PREFIX . "%\";";
    $query_result = mysqli_query($link, $query);
    $tables = array();

    while ($row = mysqli_fetch_array($query_result, MYSQLI_BOTH)) {
        $tables[] = $row[0];
    }

    for ($i = 0; $i < count($tables); $i++) {
        $delete_query = "DROP TABLE ". $tables[$i] . ";";
        mysqli_query($link, $delete_query);
    }

    mysqli_close($link);
}
function dumpSQL()
{
    if (DB_MAIN_HOST == 'localhost'){
        $args = array(
            'host' => DB_MAIN_HOST,
            'socket' => DB_MAIN_SOCKET,
            'user' => DB_MAIN_LOGIN,
            'password' => DB_MAIN_PASSWORD,
        );
    } else {
        $args = array(
            'host' => DB_MAIN_HOST,
            'user' => DB_MAIN_LOGIN,
            'password' => DB_MAIN_PASSWORD,
        );
    }
    $mysql = 'mysqldump';
    foreach ($args as $argName => $argValue) {
        $mysql .= " --$argName='$argValue'";
    }

    $db_name = DB_MAIN_NAME;
    $mysql .= " '$db_name' > " . ROOT_DIR . "/dump.sql";

    return $mysql;
}
function querySQL($query)
{
    $link = mysqli_connect(DB_MAIN_HOST, DB_MAIN_LOGIN, DB_MAIN_PASSWORD, DB_MAIN_NAME, (int)DB_MAIN_PORT, DB_MAIN_SOCKET);

    if (!$link) {
        echo mysqli_connect_error();
        exit(1);
    }

    $result = mysqli_query($link, $query);

    if (false === $result) {
        echo "Query $query failed.\n";
        exit(1);
    }
}

function removeRemarks($sql)
{
    $lines = explode("\n", $sql);
    //$sql = '';
    $linecount = count($lines);
    $output = '';

    for ($i = 0; $i < $linecount; $i++) {
        if (($i != ($linecount - 1)) || (strlen($lines[$i]) > 0)) {
            if (isset($lines[$i][0]) && $lines[$i][0] != "#") {
                $output .= $lines[$i] . "\n";
            } else {
                $output .= "\n";
            }
            $lines[$i] = '';
        }
    }

    return $output;
}
function removeComments(&$output)
{
    $lines = explode("\n", $output);
    $output = '';
    $linecount = count($lines);
    $in_comment = false;

    for($i = 0; $i < $linecount; $i++) {

        if(preg_match("/^\/\*/", preg_quote($lines[$i]))) {
            $in_comment = true;
        }

        if(!$in_comment) {
            $output .= $lines[$i] . "\n";
        }

        if(preg_match("/\*\/$/", preg_quote($lines[$i]))) {
            $in_comment = false;
        }
    }

    unset($lines);

    return $output;
}

function checkEmptyFolder($target)
{
    if (!is_readable($target)) {
        echo "[ERROR]: $target no readable.\n";
        exit(1);
    }

    $handle = opendir($target);

    while (false !== ($entry = readdir($handle))) {
        if ($entry != '.' && $entry != '..') {
            return false;
        }
    }

    closedir($handle);

    return true;
}

function deleteFolder($target)
{
    if (true === checkEmptyFolder($target)) {
        rmdir($target);
    } else {
        if (is_dir($target)) {

            $objects = scandir($target);

            foreach ($objects as $object) {
                if ($object != '.' && $object != '..') {
                    if (filetype($target . '/' . $object) == 'dir') {
                        deleteFolder($target . '/' . $object);
                    } else {
                        unlink($target . '/' . $object);
                    }
                }
            }

            reset($objects);
            rmdir($target);
        }
    }
}

function copyContent ($source, $destination)
{
    if (!file_exists($source)) {
        echo "[ERROR]: Source $source does not exist.\n";
        exit(1);
    }

    if (file_exists($destination)) {
        if (is_file($destination)) {
            unlink($destination);
        } elseif (is_dir($destination)) {
            deleteFolder($destination);
        }
    }

    if (is_file($source)) {
        copy($source, $destination);
    } elseif (is_dir($source)) {

        $dir = opendir($source);
        mkdir($destination, 0777, true);

        while(false !== ($file = readdir($dir))) {
            if ($file != '.' && $file != '..') {
                copyContent($source . '/' . $file, $destination . '/' . $file);
            }
        }

        closedir($dir);
    }
}

function replace($search, $replace, $subject)
{
    if (!is_array($subject)) {
        $searches = is_array($search) ? array_values($search) : array($search);
        $replacements = is_array($replace) ? array_values($replace) : array($replace);
        $replacements = array_pad($replacements, count($searches), '');

        foreach ($searches as $key => $search) {
            $parts = mb_split(preg_quote($search), $subject);
            $subject = implode($replacements[$key], $parts);
        }
    } else {
        foreach ($subject as $key => $value) {
            $subject[$key] = replace($search, $replace, $value);
        }
    }

    return $subject;
}

Hry