D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
blackhat.pw
:
/
homepages
/
oneclick
/
Prestashop
/
1.6.0.11
/
7
/
scripts
/
Filename :
functions.php
back
Copy
<?php function splitSQL($sql) { $tokens = explode(';', $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 $query; echo "\n[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); } 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); } $db_prefix = DB_MAIN_PREFIX; $query = "SHOW TABLES LIKE '$db_prefix%'"; $query_result = mysqli_query($link, $query); if (false === $query_result) { echo "\nQuery $query failed.\n"; echo mysqli_error($link) . "\n"; exit(1); } $tables = array(); while ($row = mysqli_fetch_array($query_result, MYSQLI_BOTH)) { $tables[] = $row[0]; } for ($i = 0; $i < count($tables); $i++) { mysqli_query($link, 'SET FOREIGN_KEY_CHECKS = 0;'); $delete_query = "DROP TABLE ". $tables[$i] . ";"; mysqli_query($link, $delete_query); mysqli_query($link, 'SET FOREIGN_KEY_CHECKS = 1;'); } 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 renameSQL($oldTablePrefix, $newTablePrefix) { $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); } $db_prefix = DB_MAIN_PREFIX; $query = "SHOW TABLES LIKE '$db_prefix%'"; $query_result = mysqli_query($link, $query); if (false === $query_result) { echo "\nQuery $query failed.\n"; echo mysqli_error($link) . "\n"; exit(1); } while ($row = mysqli_fetch_array($query_result, MYSQLI_BOTH)) { $old_table = $row[0]; if (!empty($oldTablePrefix)) { $new_table = preg_replace('/^' . $oldTablePrefix.'/', $newTablePrefix, $old_table); } else { $new_table = $newTablePrefix . $old_table; } $rename_query = "RENAME TABLE `$old_table` TO `$new_table`;"; mysqli_query($link, $rename_query); } mysqli_close($link); } 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 "\nQuery $query failed.\n"; echo mysqli_error($link) . "\n"; exit(1); } } function removeRemarks($sql) { $lines = explode("\n", $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; } function cURL($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, 1); $data = curl_exec($ch); if (false === $data) { echo "[ERROR]: $url can't be processed\n"; } curl_close($ch); } function timezone() { switch (LOCALE) { case 'de_DE': $timezone = 'Europe/Berlin'; break; case 'en_CA': $timezone = 'America/Vancouver'; break; case 'en_GB': $timezone = 'Europe/London'; break; case 'en_US': $timezone = 'America/New_York'; break; case 'es_ES': $timezone = 'Europe/Madrid'; break; case 'es_MX': $timezone = 'America/Mexico_City'; break; case 'fr_CA': $timezone = 'America/Toronto'; break; case 'fr_FR': $timezone = 'Europe/Paris'; break; case 'pl_PL': $timezone = 'Europe/Warsaw'; break; case 'it_IT': $timezone = 'Europe/Rome'; break; default: $timezone = 'Europe/London'; } return $timezone; } function now() { return selectSQL('SELECT NOW() LIMIT 1;'); } function dumpPHP() { $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); } $dbName = DB_MAIN_NAME; $db_prefix = DB_MAIN_PREFIX; $query = "SHOW TABLES LIKE '$db_prefix%'"; $result = mysqli_query($link, $query); $tables = array(); $buffer = ''; while ($row = mysqli_fetch_row($result)) { $tables[] = $row[0]; } foreach ($tables as $table) { $howManyColumns = "SELECT COUNT(*) FROM information_schema.columns WHERE table_schema='$dbName' AND table_name='$table';"; $executeHowManyColumns = mysqli_query($link, $howManyColumns); $numberOfColumns = mysqli_fetch_row($executeHowManyColumns)[0]; $creationQuery = "SHOW CREATE TABLE `$table`"; $executeCreationQuery = mysqli_query($link, $creationQuery); $createTableQuery = mysqli_fetch_row($executeCreationQuery)[1] . ';'; $buffer .= "\n$createTableQuery\n"; $tableContent = "SELECT * FROM `$table`"; $tableContentResult = mysqli_query($link, $tableContent); $rows = mysqli_data_seek($tableContentResult, 0); if (false !== $rows) { $buffer .= "\nINSERT INTO `$table` VALUES\n"; } for ($i = 0; $i < $numberOfColumns; $i++) { while ($entry = mysqli_fetch_row($tableContentResult)) { $buffer .= '('; for ($j = 0; $j < $numberOfColumns; $j++) { $element = addslashes($entry[$j]); $buffer .= "'$element',"; } $buffer .= ");\n"; } } } $buffer = trim($buffer) . "\n"; return $buffer; } function currency() { switch (LOCALE) { case 'de_DE': $currency = 'EUR'; break; case 'en_CA': $currency = 'CAD'; break; case 'en_GB': $currency = 'GBP'; break; case 'en_US': $currency = 'USD'; break; case 'es_ES': $currency = 'EUR'; break; case 'es_MX': $currency = 'MXN'; break; case 'fr_CA': $currency = 'CAD'; break; case 'fr_FR': $currency = 'EUR'; break; case 'it_IT': $currency = 'EUR'; break; default: $currency = 'USD'; } return $currency; } function language() { switch (LOCALE) { case 'de_DE': $language = 'german'; break; case 'en_CA': $language = 'english'; break; case 'en_GB': $language = 'english'; break; case 'en_US': $language = 'english'; break; case 'es_ES': $language = 'spanish'; break; case 'es_MX': $language = 'spanish'; break; case 'fr_CA': $language = 'french'; break; case 'fr_FR': $language = 'french'; break; case 'it_IT': $language = 'italian'; break; case 'pl_PL': $language = 'polish'; break; default: $language = 'english'; } return $language; } define('TIMEZONE', timezone());