003 File Manager
Current Path:
/usr/local/www/sites/shared/phpmyadmin/libraries/classes
usr
/
local
/
www
/
sites
/
shared
/
phpmyadmin
/
libraries
/
classes
/
📁
..
📄
Advisor.php
(17.87 KB)
📄
Bookmark.php
(9.85 KB)
📄
BrowseForeigners.php
(10.7 KB)
📄
CentralColumns.php
(53.12 KB)
📄
Charsets.php
(24.07 KB)
📄
CheckUserPrivileges.php
(11.58 KB)
📁
Config
📄
Config.php
(58.1 KB)
📄
Console.php
(3.58 KB)
📁
Controllers
📄
Core.php
(38.15 KB)
📄
CreateAddField.php
(17.95 KB)
📁
Database
📄
DatabaseInterface.php
(103.63 KB)
📁
Dbi
📁
Di
📁
Display
📄
Encoding.php
(8.25 KB)
📁
Engines
📄
Error.php
(12.93 KB)
📄
ErrorHandler.php
(16.32 KB)
📄
ErrorReport.php
(8.28 KB)
📄
Export.php
(40.32 KB)
📄
File.php
(20.43 KB)
📄
FileListing.php
(2.83 KB)
📄
Font.php
(4.25 KB)
📄
Footer.php
(10.47 KB)
📁
Gis
📄
Header.php
(25.81 KB)
📄
Import.php
(55.59 KB)
📄
Index.php
(24.63 KB)
📄
IndexColumn.php
(4.43 KB)
📄
InsertEdit.php
(129.1 KB)
📄
IpAllowDeny.php
(9.21 KB)
📄
Language.php
(4.3 KB)
📄
LanguageManager.php
(23.17 KB)
📄
Linter.php
(5.1 KB)
📄
ListAbstract.php
(3.15 KB)
📄
ListDatabase.php
(4.22 KB)
📄
Logging.php
(2.56 KB)
📄
Menu.php
(22.34 KB)
📄
Message.php
(19.19 KB)
📄
Mime.php
(891 B)
📄
MultSubmits.php
(23.19 KB)
📁
Navigation
📄
Normalization.php
(38.99 KB)
📄
OpenDocument.php
(8.5 KB)
📄
Operations.php
(79.4 KB)
📄
OutputBuffering.php
(3.63 KB)
📄
ParseAnalyze.php
(2.46 KB)
📄
Partition.php
(7.26 KB)
📄
Pdf.php
(4.07 KB)
📁
Plugins
📄
Plugins.php
(21.42 KB)
📁
Properties
📄
RecentFavoriteTable.php
(12.05 KB)
📄
Relation.php
(75.97 KB)
📄
RelationCleanup.php
(14.7 KB)
📄
Replication.php
(5.37 KB)
📄
ReplicationGui.php
(41.46 KB)
📄
Response.php
(16.31 KB)
📁
Rte
📄
Sanitize.php
(14.15 KB)
📄
SavedSearches.php
(11.95 KB)
📄
Scripts.php
(5.33 KB)
📁
Server
📄
Session.php
(7.68 KB)
📄
Sql.php
(87.62 KB)
📄
SqlQueryForm.php
(17.19 KB)
📄
StorageEngine.php
(13.47 KB)
📄
SubPartition.php
(3.53 KB)
📄
SysInfo.php
(1.54 KB)
📄
SysInfoBase.php
(801 B)
📄
SysInfoLinux.php
(1.96 KB)
📄
SysInfoSunOS.php
(1.87 KB)
📄
SysInfoWINNT.php
(3.1 KB)
📄
SystemDatabase.php
(3.84 KB)
📄
Table.php
(92.48 KB)
📄
Template.php
(3.91 KB)
📄
Theme.php
(10.53 KB)
📄
ThemeManager.php
(10.64 KB)
📄
Tracker.php
(29.43 KB)
📄
Tracking.php
(41.96 KB)
📄
Transformations.php
(16.12 KB)
📁
Twig
📄
TwoFactor.php
(7 KB)
📄
Types.php
(22.75 KB)
📄
Url.php
(8.02 KB)
📄
UserPassword.php
(8.26 KB)
📄
UserPreferences.php
(8.52 KB)
📄
Util.php
(162.41 KB)
📁
Utils
📄
VersionInformation.php
(6.34 KB)
📄
ZipExtension.php
(9.98 KB)
Editing: Encoding.php
<?php /* vim: set expandtab sw=4 ts=4 sts=4: */ /** * Hold the PhpMyAdmin\Encoding class * * @package PhpMyAdmin */ namespace PhpMyAdmin; use PhpMyAdmin\Config\ConfigFile; use PhpMyAdmin\Core; use PhpMyAdmin\Template; /** * Encoding conversion helper class * * @package PhpMyAdmin */ class Encoding { /** * None encoding conversion engine * * @var int */ const ENGINE_NONE = 0; /** * iconv encoding conversion engine * * @var int */ const ENGINE_ICONV = 1; /** * recode encoding conversion engine * * @var int */ const ENGINE_RECODE = 2; /** * mbstring encoding conversion engine * * @var int */ const ENGINE_MB = 3; /** * Chosen encoding engine * * @var int */ private static $_engine = null; /** * Map of conversion engine configurations * * Each entry contains: * * - function to detect * - engine contant * - extension name to warn when missing * * @var array */ private static $_enginemap = array( 'iconv' => array('iconv', self::ENGINE_ICONV, 'iconv'), 'recode' => array('recode_string', self::ENGINE_RECODE, 'recode'), 'mb' => array('mb_convert_encoding', self::ENGINE_MB, 'mbstring'), 'none' => array('isset', self::ENGINE_NONE, ''), ); /** * Order of automatic detection of engines * * @var array */ private static $_engineorder = array( 'iconv', 'mb', 'recode', ); /** * Kanji encodings list * * @var string */ private static $_kanji_encodings = 'ASCII,SJIS,EUC-JP,JIS'; /** * Initializes encoding engine detecting available backends. * * @return void */ public static function initEngine() { $engine = 'auto'; if (isset($GLOBALS['cfg']['RecodingEngine'])) { $engine = $GLOBALS['cfg']['RecodingEngine']; } /* Use user configuration */ if (isset(self::$_enginemap[$engine])) { if (function_exists(self::$_enginemap[$engine][0])) { self::$_engine = self::$_enginemap[$engine][1]; return; } else { Core::warnMissingExtension(self::$_enginemap[$engine][2]); } } /* Autodetection */ foreach (self::$_engineorder as $engine) { if (function_exists(self::$_enginemap[$engine][0])) { self::$_engine = self::$_enginemap[$engine][1]; return; } } /* Fallback to none conversion */ self::$_engine = self::ENGINE_NONE; } /** * Setter for engine. Use with caution, mostly useful for testing. * * @param int $engine Engine enconding * * @return void */ public static function setEngine($engine) { self::$_engine = $engine; } /** * Checks whether there is any charset conversion supported * * @return bool */ public static function isSupported() { if (is_null(self::$_engine)) { self::initEngine(); } return self::$_engine != self::ENGINE_NONE; } /** * Converts encoding of text according to parameters with detected * conversion function. * * @param string $src_charset source charset * @param string $dest_charset target charset * @param string $what what to convert * * @return string converted text * * @access public */ public static function convertString($src_charset, $dest_charset, $what) { if ($src_charset == $dest_charset) { return $what; } if (is_null(self::$_engine)) { self::initEngine(); } switch (self::$_engine) { case self::ENGINE_RECODE: return recode_string( $src_charset . '..' . $dest_charset, $what ); case self::ENGINE_ICONV: return iconv( $src_charset, $dest_charset . (isset($GLOBALS['cfg']['IconvExtraParams']) ? $GLOBALS['cfg']['IconvExtraParams'] : ''), $what ); case self::ENGINE_MB: return mb_convert_encoding( $what, $dest_charset, $src_charset ); default: return $what; } } /** * Detects whether Kanji encoding is available * * @return bool */ public static function canConvertKanji() { return $GLOBALS['lang'] == 'ja'; } /** * Setter for Kanji encodings. Use with caution, mostly useful for testing. * * @return string */ public static function getKanjiEncodings() { return self::$_kanji_encodings; } /** * Setter for Kanji encodings. Use with caution, mostly useful for testing. * * @param string $value Kanji encodings list * * @return void */ public static function setKanjiEncodings($value) { self::$_kanji_encodings = $value; } /** * Reverses SJIS & EUC-JP position in the encoding codes list * * @return void */ public static function kanjiChangeOrder() { $parts = explode(',', self::$_kanji_encodings); if ($parts[1] == 'EUC-JP') { self::$_kanji_encodings = 'ASCII,SJIS,EUC-JP,JIS'; } else { self::$_kanji_encodings = 'ASCII,EUC-JP,SJIS,JIS'; } } /** * Kanji string encoding convert * * @param string $str the string to convert * @param string $enc the destination encoding code * @param string $kana set 'kana' convert to JIS-X208-kana * * @return string the converted string */ public static function kanjiStrConv($str, $enc, $kana) { if ($enc == '' && $kana == '') { return $str; } $string_encoding = mb_detect_encoding($str, self::$_kanji_encodings); if ($string_encoding === false) { $string_encoding = 'utf-8'; } if ($kana == 'kana') { $dist = mb_convert_kana($str, 'KV', $string_encoding); $str = $dist; } if ($string_encoding != $enc && $enc != '') { $dist = mb_convert_encoding($str, $enc, $string_encoding); } else { $dist = $str; } return $dist; } /** * Kanji file encoding convert * * @param string $file the name of the file to convert * @param string $enc the destination encoding code * @param string $kana set 'kana' convert to JIS-X208-kana * * @return string the name of the converted file */ public static function kanjiFileConv($file, $enc, $kana) { if ($enc == '' && $kana == '') { return $file; } $tmpfname = tempnam($GLOBALS['PMA_Config']->getUploadTempDir(), $enc); $fpd = fopen($tmpfname, 'wb'); $fps = fopen($file, 'r'); self::kanjiChangeOrder(); while (!feof($fps)) { $line = fgets($fps, 4096); $dist = self::kanjiStrConv($line, $enc, $kana); fputs($fpd, $dist); } // end while self::kanjiChangeOrder(); fclose($fps); fclose($fpd); unlink($file); return $tmpfname; } /** * Defines radio form fields to switch between encoding modes * * @return string xhtml code for the radio controls */ public static function kanjiEncodingForm() { return Template::get('encoding/kanji_encoding_form')->render(); } /** * Lists available encodings. * * @return array */ public static function listEncodings() { if (is_null(self::$_engine)) { self::initEngine(); } /* Most engines do not support listing */ if (self::$_engine != self::ENGINE_MB) { return $GLOBALS['cfg']['AvailableCharsets']; } return array_intersect( array_map('strtolower', mb_list_encodings()), $GLOBALS['cfg']['AvailableCharsets'] ); } }
Upload File
Create Folder