batch/library/Metier/Util/String.php
Michael RICOIS f48c563b7c Library
2016-07-19 10:37:46 +02:00

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('&#156;', 'oe',
str_replace('&#146;', '\'', 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;
}
}