Qware_core/lib/system/system_utils/chaine.php

409 lines
8.2 KiB
PHP
Executable File

<?php
/**------------------------------------------------
*
* Rooty, 2018 <rooty@rooty.me>
*
*
* This software is protected by copyright, please
* read the file COPYRIGHT.
* This program is distributed in the hope that it
* will be useful, but without any warranty; without
* even the implied warranty of merchantability or
* fitness for a particular purpose. Please
* read the file LICENCE.
*
*Fichier Chaine.php
*
*Ce fichier contient la classe Chaine
*<BR>
* @author Rooty <www.rooty.me|rooty@rooty.me>
* @link www.rooty.me
* @since 2004/04/09
* @version 0.3
* @copyright Copyright &copy; 2009-2018, Rooty
* @package system_utils
*/
/**
* Classe Chaine
*
* Permet la gestion de chaines
* @package system_utils
*/
class Chaine
{
/**#@+
* @access public
*/
/**
* @var string
* @desc contient la chaine d'origine
*/
var $src = null;
/**#@-*/
//
// Constructor
//
/**
*Constructeur de la classe Chaine
*
*<p>Initialise la donnée</p>
*
* @param chaine source de données
*/
function __construct($src)
{
$this->src=$src;
}
/**
*String to html
*
*<p>Transforme une chaine de caractère au format HTML à partir de $src</p>
*
*/
function strToHtml()
{
$tmp=htmlspecialchars($this->src, ENT_QUOTES);
$tmp=str_replace(chr(13).chr(10),"<br>",$tmp);
return $tmp;
}
/**
*html to String
*
*<p>Transforme du code HTML en chaine de caractère à partir de $src</p>
*
*/
function htmlToStr()
{
$tmp=$this->src;
$tmp=unhtmlentities($tmp);
$tmp=str_replace("<br>",chr(13).chr(10),$tmp);
//$tmp = addslashes(stripslashes($tmp));
return $tmp; // retourne une chaine
}
/**
*StrCut
*
*<p>Récupere le debut d'une chaine de caractere (nbChar)</p>
*
* @param entier nombre de caractère à récuperer
*/
function strCut($nbChar)
{
$tmp=$this->src;
# On enleve les retours à la ligne
$tmp=str_replace(chr(13).chr(10),"",$tmp);
$strlen=strlen($tmp);
# Si la taille n'est pas valide
if ($strlen>$nbChar)
{
$tmp=substr($tmp,0,$nbChar);
}
return $tmp;
}
/**
*HtmlCut
*
*<p>Récupere le debut du texte d'une chaine html (nbChar)</p>
*
* @param entier nombre de caractère à récuperer
*/
function htmlCut($nbChar)
{
$tmp=$this->src;
# On enlève les espaces superflux
while (!(strpos($tmp, " ")===false))
{
$tmp=str_replace(" "," ",$tmp);
}
# on enlève les caractères spéciaux
$tmp=unhtmlentities($tmp);
$tmp = eregi_replace("^[[:space:]]*[a-z]+[.)".chr(176)."]([[:space:]]*)", "",$tmp);
# on a maintenant une chaine propre à l'utilisation...
# On enleve les retours à la ligne
$tmp=str_replace(chr(13).chr(10),"",$tmp);
$strlen=strlen($tmp);
# Si la taille n'est pas valide
if ($strlen>$nbChar)
{
$tmp=substr($tmp,0,$nbChar)."&nbsp;...";
}
//$tmp = addslashes(stripslashes($tmp));
return $tmp;
}
function chainCut($nbChar)
{
$tmp=$this->src;
// # On enlève les espaces superflux
// while (!(strpos($tmp, " ")===false))
// {
// $tmp=str_replace(" "," ",$tmp);
// }
# on enlève les caractères spéciaux
// $tmp=unhtmlentities($tmp);
// $tmp = eregi_replace("^[[:space:]]*[a-z]+[.)".chr(176)."]([[:space:]]*)", "",$tmp);
# on a maintenant une chaine propre à l'utilisation...
# On enleve les retours à la ligne
$tmp=str_replace(chr(13).chr(10),"",$tmp);
$strlen=strlen($tmp);
# Si la taille n'est pas valide
if ($strlen>$nbChar)
{
$tmp=substr($tmp,0,$nbChar)."&nbsp;...";
}
//$tmp = addslashes(stripslashes($tmp));
return $tmp;
}
/**
*Str To Sql
*
*<p>Transforme une chaine de caractères en chaine Sql à partir de $src</p>
*
*<p>Utilisation de htmlentities</p>
*
*/
function strToSql()
{
$tmp=$this->src;
$tmp=htmlentitiesconv($tmp); //stockés en htmlentities
return $tmp;
}
/**
*Html To Sql
*
*<p>Transforme une chaine de caractères au format HTML à partir de $src</p>
*
*/
function htmlToSql()
{
$tmp=$this->src;
return $tmp;
}
/**
*SQL To Str
*
*<p>Transforme une chaine de caractères à partir de $src</p>
*
*/
function sqlToStr()
{
$tmp=$this->src;
return $tmp;
}
/**
*SQL To Html
*
*<p>Transforme une chaine de caractères au format HTML à partir de $src</p>
*
*/
function sqlToHtml()
{
$tmp=$this->src;
return $tmp;
}
/**
* bytexor
* @private
*/
function bytexor($a,$b,$l)
{
$c="";
for($i=0;$i<$l;$i++) {
$c.=$a[$i]^$b[$i];
}
return($c);
}
/**
* binmd5
* @private
*/
function binmd5($val)
{
return(pack("H*",md5($val)));
}
/*
*Decrypt
*<p>Decryptage de la source de donnée à partir d'une clé</p>
*
* @param chaine
* @desc clé de l'encryptage
* @return chaine
* @desc chaine décryptée à partir de la source de l'objet (source cryptée)
*/
function decrypt($paramKey)
{
$msg=$this->src;
$key=$paramKey;$sifra="";
$key1=$this->binmd5($key);
while($msg) {
$m=substr($msg,0,16);
$msg=substr($msg,16);
$sifra.=$m=$this->bytexor($m, $key1, strlen($m));
$key1=$this->binmd5($key.$key1.$m);
}
return($sifra);
}
/*
*Encryptage
*<p>Encryptage de la source de donnée à partir d'une clé</p>
*
* @param chaine
* @desc clé de l'encryptage
* @return chaine
* @desc chaine cryptée à partir de la source de l'objet'
*/
function encrypt($paramKey)
{
$msg=$this->src;
$key=$paramKey;$sifra="";
$key1=$this->binmd5($key);
while($msg) {
$m=substr($msg,0,16);
$msg=substr($msg,16);
$sifra.=$this->bytexor($m, $key1, strlen($m));
$key1=$this->binmd5($key.$key1.$m);
}
return($sifra);
}
/*
* formatNameClean
*<p>Enléve tous les characteres spéciaux</p>
*
* @return chaine
* @desc chaine chaine sans caractéres spéciaux
*/
function formatNameClean()
{
$ch = $this->src;
/*Fonction permettant de supprimer les numeros, le point et l'espace à l'affichage*/
$ch = eregi_replace("^[[:space:]]*[a-z]+[.)".chr(176)."][[:space:]]+", "", $ch);
$s = strtolower($ch);
# Gestion des char remplacables
$s=ereg_replace("à|À|â|Â|ä|Ä","a",$s);
$s=ereg_replace("ç|Ç","c",$s);
$s=ereg_replace("è|È|é|É|ê|Ê|ë|Ë","e",$s);
$s=ereg_replace("î|Î|ï|Ï","i",$s);
$s=ereg_replace("ô|Ô","o",$s);
$s=ereg_replace("ù|Ù|û|Û","u",$s);
# Gestion des espaces
$s=ereg_replace(" | |-|/|,","_",$s);
$nb=strlen($s);
$i=0;
while($i<$nb)
{
// Suppression de tous les chars spèciaux!!!
if ( ((ord(substr($s,$i,1))<97) || (ord(substr($s,$i,1))>122)) && ((ord(substr($s,$i,1))!=95)) ){
$s=substr($s,0,$i).substr($s,($i+1));
$i=0;
$nb=strlen($s);
}
$i++;
}
if (strlen($s)>25)
$s=substr($s,0,25);
return $s;
}
/*
* formatNameClean
*<p>Enléve tous les characteres spéciaux</p>
*
* @return chaine
* @desc chaine chaine sans caractéres spéciaux
*/
function formatNameWidthNumberClean()
{
$ch = $this->src;
/*Fonction permettant de supprimer les numeros, le point et l'espace à l'affichage*/
$ch = eregi_replace("^[[:space:]]*[a-z][0-9]+[.)".chr(176)."][[:space:]]+", "", $ch);
$s = strtolower($ch);
# Gestion des char remplacables
$s=ereg_replace("à|À|â|Â|ä|Ä","a",$s);
$s=ereg_replace("ç|Ç","c",$s);
$s=ereg_replace("è|È|é|É|ê|Ê|ë|Ë","e",$s);
$s=ereg_replace("î|Î|ï|Ï","i",$s);
$s=ereg_replace("ô|Ô","o",$s);
$s=ereg_replace("ù|Ù|û|Û","u",$s);
# Gestion des espaces
$s=ereg_replace(" | |-|/|,","_",$s);
$nb=strlen($s);
$i=0;
while($i<$nb)
{
// Suppression de tous les chars spèciaux!!!
if ( ((ord(substr($s,$i,1))<48) || (ord(substr($s,$i,1))>57)) && ((ord(substr($s,$i,1))<97) || (ord(substr($s,$i,1))>122)) && ((ord(substr($s,$i,1))!=95)) ){
$s=substr($s,0,$i).substr($s,($i+1));
$i=0;
$nb=strlen($s);
}
$i++;
}
if (strlen($s)>25)
$s=substr($s,0,25);
return $s;
}
/*
* NoSpecialChar
*<p>Enléve tous les characteres spéciaux</p>
*
* @return chaine
* @desc chaine chaine sans caractéres spéciaux
*/
function noSpecialChar()
{
$tmp=$this->src;
$tmp=strtoupper($tmp);
$i=1;
$retourValue="";
while ($i <= strlen($tmp))
{
$testValue=substr($tmp,$i-1,1);
if (($testValue>="A" && $testValue<="Z") || ($testValue>="0" && $testValue<="9"))
{
$retourValue.=$testValue;
}
$i++;
}
return $retourValue;
}
/*
* StripHtmlTags
*<p>Enléve toutes les tags HTML</p>
*
* @return chaine
* @desc chaine chaine sans caractéres spéciaux
*/
function stripHtmlTags()
{
$tmp=strip_tags($this->src);
$tmp=unhtmlentities($tmp);
return $tmp;
}
}
?>