| Server IP : 210.245.233.93 / Your IP : 216.73.216.226 Web Server : Apache/2.2.15 (CentOS) System : Linux webserver2.onesolution.com.hk 2.6.32-754.35.1.el6.x86_64 #1 SMP Sat Nov 7 12:42:14 UTC 2020 x86_64 User : apache ( 48) PHP Version : 5.3.3 Disable Function : exec, shell_exec, system, passthru, popen, proc_open, pcntl_exec MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/hkosl.com/littleark/webadmin/ |
Upload File : |
<?php
use Illuminate\Database\Capsule\Manager as DB;
function timestamp($length=19){
return substr(date('Y-m-d H:i:s'), 0 , $length);
}
function vdump(){
print"<pre>";
call_user_func_array('var_dump', func_get_args());
//var_dump($a);
print"</pre>";
}
function osl($fn = false){
if (in_array(get_client_ip(), ['223.255.164.254', '::1'])) {
if($fn===false){
return true;
}
$fn();
}
return false;
}
function vdump1(){
if (in_array(get_client_ip(), ['223.255.164.254', '::1'])) {
print"<pre>";
call_user_func_array('var_dump', func_get_args());
//var_dump($a);
print"</pre>";
}
}
function datef($dat, $settings='DT'){
if(strtoupper($settings)=='DT'){
$numchar = 19;
}elseif(strtoupper($settings)=='D'){
$numchar = 10;
}else{
$numchar = $settings;
}
//vdump($setting);
if(substr($dat, 0, 10)=="1900-01-01"){
return "";
}
return substr($dat, 0, $numchar);
}
function print_array($array, $title) {
echo "<p class='exp_head'>\$$title</p>\n";
echo "<div class='exp_body'>\n";
echo "\t<pre>\n";
print_r($array);
echo "\t</pre>\n";
echo "</div>\n";
}
function is_assoc(array $array=array()) {
if(empty($array)){
return false;
}
return (bool)count(array_filter(array_keys($array), 'is_string'));
}
function dq_bind_array($query, $binding=array()){
foreach($binding as $v){
$query = preg_replace('/[?]/', "'{$v}'", $query, 1);
}
return $query;
}
function dq_bind_assoc($query, $binding=array()){
if (sizeof($binding) > 0) {
krsort($binding);
foreach ($binding as $key => $value) {
$query = str_replace("{$key}", "'{$value}'", $query);
}
}
return $query;
}
function dq($bind=true, $die=false, $return=false, $connection="default"){
if(!DB::connection($connection)->logging()){
echo "Please enable Capsule::connection('{$connection}')->enableQueryLog(); in database.php";
return;
}
$results = DB::connection($connection)->getQueryLog();
if($bind){
foreach($results as $k => $result){
if(is_assoc($result['bindings'])){
$queries[] = dq_bind_assoc($result['query'], $result['bindings']);
}else{
$queries[] = dq_bind_array($result['query'], $result['bindings']);
}
}
if($return){
return $queries;
}else{
vdump($queries);
if($die) exit();
return;
}
}
if($return){
return $results;
}else{
var_dump($results);
if($die) exit();
}
}
function val_in_array($a, $field){
if(is_array($a)){
return $a[$field];
}
}
// system profiling
function lang_read_db($langcode = false){
global $_profile;
global $_translations;
$time_start = microtime(true);
$this_langcode = $langcode ?: get_langcode();
$sql = "select * from `language` where deleted = ?";
$parameters = array(0);
$temp = bind_pdo($sql, $parameters, "selectall");
// echo bind_pdo($sql, $parameters, "dump");
// var_dump($temp);
foreach($temp as $t){
$_translations[$this_langcode][$t["label"]] = $t["name_" . $this_langcode];
}
$_profile[__FUNCTION__] = number_format(microtime(true) - $time_start, 3);
// var_dump($_translations);
// exit;
}
// lang_read_db();
//
$_profile['lang'] = 0;
function lang($text, $langcode = false){
// function lang($text, ...$args){
// vdump(__FUNCTION__);
global $_profile;
global $_translations;
$langcode = $langcode ?: get_langcode();
// if($langcode=="en"){
// // todo
// return $text;
// }
if(empty($_translations[$langcode])){
// lang_read_json();
lang_read_db($langcode);
}
$time_start = microtime(true);
$s = false;
if(array_key_exists($text, $_translations[$langcode])){
$s = $_translations[$langcode][$text];
}
$_profile['lang'] += microtime(true) - $time_start;
// return $text;
if($s){
return $s;
// return sprintf($s, $args);
}
lang_pending_push($text);
return $text;
// return sprintf($text, $args);
}
function lang_pending_push($text){
if(LanguagePending::where('name_en', $text)->count()==0){
LanguagePending::create(array(
'name_en' => $text,
));
}
}
function lang_pending_to_lang(){
global $arraylangcode;
$required_fields = ['name_en', 'name_sc', 'name_idn'];
foreach(LanguagePending::get() as $languagePending){
$moveToLanguage = true;
foreach($required_fields as $required_field){
if(!$languagePending[$required_field]){
$moveToLanguage = false;
break;
}
}
if($moveToLanguage){
if(Language::where('name_en', $languagePending->name_en)->count()==0){
//insert
Language::create([
'label' => $languagePending->name_en,
'name_en' => $languagePending->name_en,
'name_sc' => $languagePending->name_sc,
'name_tc' => $languagePending->name_tc,
'name_idn' => $languagePending->name_idn,
]);
// vdump($languagePending);
}else{
vdump("duplicated: {$languagePending->name_en}");
}
$languagePending->delete()->save();
}
}
dq(1);
exit('==COMPLETED==');
}
function update_ip(){
global $master_settings;
vdump( $server_ip = file_get_contents('http://ipecho.net/plain') );
$ip = MasterSetting::where('attribute', 'IP')->first();
$ip->val = $server_ip;
$ip->save();
dq(1,1);
}
// // Create two timezone objects, one for Taipei (Taiwan) and one for
// // Tokyo (Japan)
// $dateTimeZoneTaipei = new DateTimeZone("Asia/Hong_Kong");
// $dateTimeZoneJapan = new DateTimeZone("Asia/Hong_Kong");
// // Create two DateTime objects that will contain the same Unix timestamp, but
// // have different timezones attached to them.
// $dateTimeTaipei = new DateTime("now", $dateTimeZoneTaipei);
// $dateTimeJapan = new DateTime("now", $dateTimeZoneJapan);
// vdump($dateTimeTaipei->getOffset($dateTimeZoneTaipei));
// // Calculate the GMT offset for the date/time contained in the $dateTimeTaipei
// // object, but using the timezone rules as defined for Tokyo
// // ($dateTimeZoneJapan).
// $timeOffset = $dateTimeZoneJapan->getOffset($dateTimeTaipei);
// // Should show int(32400) (for dates after Sat Sep 8 01:00:00 1951 JST).
// var_dump($timeOffset/60/60);
// exit;