/** * Combine function trimText and cleanTruncate for input * @param string $str * @param intégrer $lg_max * @param string $delimiter * @return string */ public static function truncateClean($str, $lg_max, $delimiter) { return filter_escapeHtml::trim(filter_string::truncate($str, $lg_max, $delimiter)); }
/** * Converti une chaine en URL valide * @static * @param string $str * @param array $option * @return mixed|string * @throws Exception * @example: http_url::clean( '/public/test/truc-machin01/aussi/version-1.0/', array('dot'=>'display','ampersand'=>'strict','cspec'=>array('[\/]'),'rspec'=>array('')) ); */ public static function clean($str, $option = array('dot' => false, 'ampersand' => 'none', 'cspec' => '', 'rspec' => '')) { /**Clean accent*/ $Caracs = array("¥" => "Y", "µ" => "u", "À" => "A", "Á" => "A", "Â" => "A", "Ã" => "A", "Ä" => "A", "Å" => "A", "Æ" => "A", "Ç" => "C", "È" => "E", "É" => "E", "Ê" => "E", "Ë" => "E", "Ì" => "I", "Í" => "I", "Î" => "I", "Ï" => "I", "Ð" => "D", "Ñ" => "N", "Ò" => "O", "Ó" => "O", "Ô" => "O", "Õ" => "O", "Ö" => "O", "Ø" => "O", "Ù" => "U", "Ú" => "U", "Û" => "U", "Ü" => "U", "Ý" => "Y", "ß" => "s", "à" => "a", "á" => "a", "â" => "a", "ã" => "a", "ä" => "a", "å" => "a", "æ" => "a", "ç" => "c", "è" => "e", "é" => "e", "ê" => "e", "ë" => "e", "ì" => "i", "í" => "i", "î" => "i", "ï" => "i", "ð" => "o", "ñ" => "n", "ò" => "o", "ó" => "o", "ô" => "o", "õ" => "o", "ö" => "o", "ø" => "o", "ù" => "u", "ú" => "u", "û" => "u", "ü" => "u", "ý" => "y", "ÿ" => "y"); $str = strtr("{$str}", $Caracs); $str = trim($str); if (is_bool($option)) { if ($option != false) { /*replace & => $amp (w3c convert)*/ $str = str_replace('&', '&', $str); $str = str_replace('.', '', $str); } } elseif (is_array($option)) { if (array_key_exists('dot', $option)) { if ($option['dot'] == 'none') { $str = str_replace('.', '', $str); } } if (array_key_exists('ampersand', $option)) { if ($option['ampersand'] == 'strict') { /*replace & => $amp (w3c convert)*/ $str = str_replace('&', '&', $str); } elseif ($option['ampersand'] == 'none') { /*replace & => ''*/ $str = str_replace('&', '', $str); } else { /*replace & => $amp (w3c convert)*/ $str = str_replace('&', '&', $str); } } } /* stripcslashes backslash */ $str = filter_escapeHtml::cleanQuote($str); $tbl_o = array("@'@i", '@[[:blank:]]@i', '[\\?]', '[\\#]', '[\\@]', '[\\,]', '[\\!]', '[\\:]', '[\\(]', '[\\)]'); $tbl_r = array('-', '-', "", "", "", "", "", "", "", ""); $cSpec = ''; $rSpec = ''; if (is_array($option)) { if (array_key_exists('cspec', $option) and array_key_exists('rspec', $option)) { if (is_array($option['cspec']) and is_array($option['rspec'])) { if ($option['cspec'] != '' and $option['rspec'] != '') { $cSpec = array_merge($tbl_o, $option['cspec']); $rSpec = array_merge($tbl_r, $option['rspec']); } else { throw new Exception('cspec or rspec option is NULL'); } } else { /*replace blank and special caractère*/ $cSpec = $tbl_o; $rSpec = $tbl_r; } } else { /*replace blank and special caractère*/ $cSpec = $tbl_o; $rSpec = $tbl_r; } } else { /*replace blank and special caractère*/ $cSpec = $tbl_o; $rSpec = $tbl_r; } /*Removes the indent if end of string*/ $str = rtrim(preg_replace($cSpec, $rSpec, $str), "-"); /*Convert UTF8 encode*/ $str = filter_htmlentities::decode_utf8($str); /*Convert lower case*/ $str = filter_string::strtolower($str); return $str; }