106 lines
3.4 KiB
PHP
106 lines
3.4 KiB
PHP
|
<?php
|
||
|
class Metier_Util_String
|
||
|
{
|
||
|
const BEFORE = 0;
|
||
|
const AFTER = 1;
|
||
|
const BOTH = 2;
|
||
|
const ALIGN_LEFT = 0;
|
||
|
const ALIGN_RIGHT = 1;
|
||
|
|
||
|
/**
|
||
|
* Initialisation d'une chaîne de caractère
|
||
|
* @param string $chaine
|
||
|
* Chaîne de caractère initiale
|
||
|
* @param int $taille
|
||
|
* Taille de la chaîne de caractère à initialiser
|
||
|
* @param string $caractere_pour_combler
|
||
|
* Caractère à utiliser pour combler la chaîne de caractère (espace par défaut)
|
||
|
* @param string $align
|
||
|
* Aligner la chaîne de caractère à droite (right) ou à gauche (left, par défaut)
|
||
|
* @return string
|
||
|
*/
|
||
|
public static function initstr($chaine, $taille, $caractere_pour_combler=' ', $align=self::ALIGN_LEFT)
|
||
|
{
|
||
|
if (mb_strlen($chaine) >= $taille) {
|
||
|
return substr($chaine, 0, $taille);
|
||
|
}
|
||
|
|
||
|
$encoding = mb_internal_encoding();
|
||
|
$diff = strlen($chaine) - mb_strlen($chaine, $encoding);
|
||
|
|
||
|
if ($align == self::ALIGN_RIGHT) {
|
||
|
return str_pad($chaine, $taille + $diff, $caractere_pour_combler, STR_PAD_LEFT);
|
||
|
}
|
||
|
|
||
|
if ($align == self::ALIGN_LEFT) {
|
||
|
return str_pad($chaine, $taille + $diff, $caractere_pour_combler, STR_PAD_RIGHT);
|
||
|
}
|
||
|
|
||
|
return $str;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Supprime les accents
|
||
|
* @param string $strWithAccent
|
||
|
*/
|
||
|
public static function trimAccent($strWithAccent)
|
||
|
{
|
||
|
$strWithAccent = htmlentities(strtolower($strWithAccent ));
|
||
|
$strWithAccent = preg_replace("/&(.)(acute|cedil|circ|ring|tilde|uml|grave);/", "$1", $strWithAccent );
|
||
|
$strWithAccent = preg_replace("/([^a-z0-9]+)/", " ", html_entity_decode($strWithAccent ));
|
||
|
$strWithAccent = trim($strWithAccent , "-");
|
||
|
return $strWithAccent;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
*
|
||
|
* @param unknown $str
|
||
|
*/
|
||
|
public static function htm2txt($str)
|
||
|
{
|
||
|
return trim(strip_tags( str_replace(chr(160), ' ',
|
||
|
str_replace('œ', 'oe',
|
||
|
str_replace('’', '\'', html_entity_decode($str, ENT_QUOTES))))));
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Vérification que la variable demandé respecte bien les règles passées en paramètres
|
||
|
* @param mixed Variable à tester
|
||
|
* @param int Longueur minimum en caractère de la variable
|
||
|
* @param int Longueur mximum
|
||
|
* @param char(1) Type de variable <b>A</b>:Alphanumérique / <b>N</b>:Numérique
|
||
|
* @param mixed Message textuel d'erreur à afficher en cas d'erreur ou false
|
||
|
* @return mixed true, false ou Message d'erreur passé en paramètre
|
||
|
*/
|
||
|
public static function valideData($variable, $taille_min, $taille_max, $type_variable, $erreur=false)
|
||
|
{
|
||
|
if ( strlen((string)$variable) < $taille_min ) {
|
||
|
return $erreur;
|
||
|
}
|
||
|
|
||
|
if ( strlen((string)$variable) > $taille_max ) {
|
||
|
return $erreur;
|
||
|
}
|
||
|
|
||
|
if ( $type_variable == 'A' ) {
|
||
|
if ( is_string($variable) == true ) {
|
||
|
return true;
|
||
|
}
|
||
|
else {
|
||
|
return $erreur;
|
||
|
}
|
||
|
}
|
||
|
elseif ( $type_variable == 'N') {
|
||
|
for ($i=0; $i < strlen((string)$variable); $i++) {
|
||
|
$car = substr((string)$variable,$i,1);
|
||
|
if ($car<'0' || $car>'9') {
|
||
|
return $erreur;
|
||
|
}
|
||
|
}
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
return $erreur;
|
||
|
}
|
||
|
|
||
|
}
|