=')) { if(session_status() == PHP_SESSION_NONE) { $session_start = false; } } else { if('' == session_id()) { $session_start = false; } } if(!$session_start) { do_action('fansub_session_start_before'); session_start(); } } function fansub_debug_log($message) { if(WP_DEBUG === true) { if(is_array($message) || is_object($message)) { error_log(print_r($message, true)); } else { error_log($message); } } } function fansub_create_file($path, $content = '') { if($fh = fopen($path, 'w')) { fwrite($fh, $content, 1024); fclose($fh); } } function fansub_get_pc_ip() { $result = ''; if(function_exists('getHostByName')) { if(version_compare(PHP_VERSION, '5.3', '<') && function_exists('php_uname')) { $result = getHostByName(php_uname('n')); } elseif(function_exists('getHostName')) { $result = getHostByName(getHostName()); } } return $result; } function fansub_get_all_shortcodes() { return $GLOBALS['shortcode_tags']; } function fansub_get_alphabetical_chars() { $result = '#ABCDEFGHIJKLMNOPQRSTUVWXYZ'; $result = str_split($result); return $result; } function fansub_get_all_sb_shortcodes() { $shortcodes = fansub_get_all_shortcodes(); $result = array(); foreach($shortcodes as $key => $function) { if(('sb' == substr($key, 0, 2) && 'sb' == substr($function, 0, 2)) || ('fansub' == substr($key, 0, 5) && 'fansub' == substr($function, 0, 5))) { $result[$key] = $function; } } return $result; } function fansub_get_my_shortcodes() { return fansub_get_all_sb_shortcodes(); } function fansub_get_timezone_string() { $timezone_string = get_option('timezone_string'); if(empty($timezone_string)) { $timezone_string = 'Asia/Ho_Chi_Minh'; } return $timezone_string; } function fansub_get_current_date($format = 'Y-m-d') { date_default_timezone_set(fansub_get_timezone_string()); $result = date($format); return $result; } function fansub_get_current_datetime_mysql() { return fansub_get_current_date('Y-m-d H:i:s'); } function fansub_is_ip($ip) { if(filter_var($ip, FILTER_VALIDATE_IP)) { return true; } return false; } function fansub_get_ipinfo($ip) { if(!fansub_is_ip($ip)) { return ''; } $json = @file_get_contents('http://ipinfo.io/' . $ip); $details = json_decode($json); $details = (array)$details; return $details; } function fansub_get_user_isp_ip() { $client = @$_SERVER['HTTP_CLIENT_IP']; $forward = @$_SERVER['HTTP_X_FORWARDED_FOR']; $remote = $_SERVER['REMOTE_ADDR']; if(fansub_is_ip($client)) { $ip = $client; } elseif(fansub_is_ip($forward)) { $ip = $forward; } else { $ip = $remote; } return $ip; } function fansub_array_has_value($arr) { if(is_array($arr) && count($arr) > 0) { return true; } return false; } function fansub_get_plugin_info($plugin_file) { if(!file_exists($plugin_file)) { $plugin_file = trailingslashit(WP_PLUGIN_DIR) . $plugin_file; } if(!file_exists($plugin_file)) { return null; } return get_plugin_data($plugin_file); } function fansub_get_plugin_name($plugin_file, $default = '') { $plugin = fansub_get_plugin_info($plugin_file); return fansub_get_value_by_key($plugin, 'Name', $default); } function fansub_string_empty($string) { if('' === $string) { return true; } return false; } function fansub_get_value_by_key($arr, $key, $default = '') { if(is_object($key) || is_object($arr) || fansub_string_empty($key)) { return $default; } $has_key = false; $arr = fansub_sanitize_array($arr); $result = ''; if(fansub_array_has_value($arr)) { if(is_array($key)) { if(count($key) == 1) { $key = array_shift($key); if(isset($arr[$key])) { return $arr[$key]; } } else { $tmp = $arr; if(is_array($tmp)) { $has_value = false; $level = 0; foreach($key as $index => $child_key) { if(is_array($child_key)) { if(count($child_key) == 1) { $child_key = array_shift($child_key); } $result = fansub_get_value_by_key($tmp, $child_key); } else { if(isset($tmp[$child_key])) { $tmp = $tmp[$child_key]; $has_value = true; $level++; $has_key = true; } } } if(!$has_value) { reset($key); $first_key = current($key); if(fansub_array_has_value($arr)) { $tmp = fansub_get_value_by_key($arr, $first_key); if(fansub_array_has_value($tmp)) { $result = fansub_get_value_by_key($tmp, $key); } } } if($has_value && fansub_string_empty($result)) { $result = $tmp; } } } } else { if(isset($arr[$key])) { $result = $arr[$key]; $has_key = true; } else { foreach($arr as $index => $value) { if(is_array($value)) { $result = fansub_get_value_by_key($value, $key); } else { if($key === $index) { $has_key = true; $result = $value; } } } } } } if(!$has_key) { $result = $default; } return $result; } function fansub_get_method_value($key, $method = 'post', $default = '') { $method = strtoupper($method); switch($method) { case 'POST': $result = fansub_get_value_by_key($_POST, $key, $default); break; case 'GET': $result = fansub_get_value_by_key($_GET, $key, $default); break; default: $result = fansub_get_value_by_key($_REQUEST, $key, $default); } return $result; } function fansub_array_unique($arr) { if(is_array($arr)) { $arr = array_map('unserialize', array_unique(array_map('serialize', $arr))); } return $arr; } function fansub_get_terms($taxonomy, $args = array()) { global $wp_version; $defaults = array( 'hide_empty' => 0, 'taxonomy' => $taxonomy ); $args = wp_parse_args($args, $defaults); if(version_compare($wp_version, '4.5', '>=')) { $terms = get_terms($args); } else { $terms = get_terms($taxonomy, $args); } return $terms; } function fansub_remove_select_tag_keep_content($content) { $content = strip_tags($content, '