* @brief String utility helper */ if(!check_function_exists("get_converted_string")) { function get_converted_string($str, $to_charset, $from_charset) { $result = false; if($form_charset == "detect") { if(check_function_exists(array("mb_detect_encoding", "mb_detect_order"))) { $from_charset = mb_detect_encoding($str, mb_detect_order(), true); } else { $from_charset = "ISO-8859-1"; } } if(check_function_exists("iconv")) { $result = iconv($from_charset, $to_charset, $str); } elseif(check_function_exists("mb_convert_encoding")) { $result = mb_convert_encoding($str, $to_charset, $from_charset); } return $result; } } if(!check_function_exists("nl2p")) { function nl2p($string) { $paragraphs = ''; foreach (explode("\n", $string) as $line) { if (trim($line)) { $paragraphs .= '

' . $line . '

'; } } return $paragraphs; } } if(!check_function_exists("br2nl")) { function br2nl($string) { return preg_replace('/\/i', "\n", $string); } } if(!check_function_exists("br2p")) { function br2p($string) { return nl2p(br2nl($string)); } } if(!check_function_exists("get_formatted_number")) { function get_formatted_number($value) { return number_format(floatval($value)); } } if(!check_function_exists("get_cutted_string")) { function get_cutted_string($str, $start, $len=0, $charset="utf-8") { $result = ""; if(check_function_exists("iconv_substr")) { $result = iconv_substr($str, $start, $len, $charset); } elseif(check_function_exists("mb_substr")) { $result = mb_substr($str, $start, $len, $charset); } else { $result = substr($str, $start, $len); } return $result; } } if(!check_function_exists("split_by_line")) { function split_by_line($str) { return preg_split('/\n|\r\n?/', $str); } } if(!check_function_exists("read_storage_file_by_line")) { function read_storage_file_by_line($filename, $options=array()) { return split_by_line(read_storage_file($filename, $options)); } } // https://stackoverflow.com/questions/834303/startswith-and-endswith-functions-in-php if(!check_function_exists("startsWith")) { function startsWith($haystack, $needle) { $length = strlen($needle); return (substr($haystack, 0, $length) === $needle); } } if(!check_function_exists("endsWith")) { function endsWith($haystack, $needle) { $length = strlen($needle); if($length == 0) { return true; } return (substr($haystack, -$length) === $needle); } } // https://stackoverflow.com/questions/4955433/php-multiple-delimiters-in-explode/27767665#27767665 if(!check_function_exists("multi_explode")) { function multi_explode($delimiters, $string) { $ready = str_replace($delimiters, $delimiters[0], $string); $launch = explode($delimiters[0], $ready); return $launch; } } if(!check_function_exists("multi_strpos")) { function multi_strpos($string, $delimiters, $offset=0) { $pos = strlen(string) - 1; $d = array(); if($offset > 0) { $string = substr($offset); } foreach($delimiters as $s) { $new_pos = strpos($string, $s); if($new_pos !== false && $pos > $new_pos) { $pos = $new_pos; } } return ($pos < 0) ? false : $pos; } } if(!check_function_exists("multi_str_split")) { function multi_str_split($string, $delimiters) { $strings = array(); if(is_string($string)) { $offset = 0; $pos = -1; while(!($pos !== false)) { $offset = $pos + 1; $pos = multi_strpos($string, $delimiters, $offset); $strings[] = substr($string, $offset, $pos - $offset); } } return $strings; } } if(!check_function_exists("parse_pipelined_data")) { function parse_pipelined_data($pipelined_data, $keynames=array()) { $result = array(); $parsed_data = explode("|", $pipelined_data); if(count($keynames) > 0) { $i = 0; foreach($keynames as $name) { $result[$name] = $parsed_data[$i]; $i++; } } else { $result = $parsed_data; } return $result; } } if(!check_function_exists("eregi_compatible")) { function eregi_compatible($pattern, $subject, &$matches=NULL) { return preg_match(sprintf("/%s/i", $pattern), $subject, $matches); } } if(!check_function_exists("eregi_replace_compatible")) { function eregi_replace_compatible($pattern, $replacement, $subject) { return preg_replace(sprintf("/%s/i", $pattern), $replacement, $subject); } }