* * * 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 *
* @author Rooty * @link www.rooty.me * @since 2004/04/09 * @version 0.3 * @copyright Copyright © 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 * *

Initialise la donnée

* * @param chaine source de données */ function __construct($src) { $this->src=$src; } /** *String to html * *

Transforme une chaine de caractère au format HTML à partir de $src

* */ function strToHtml() { $tmp=htmlspecialchars($this->src, ENT_QUOTES); $tmp=str_replace(chr(13).chr(10),"
",$tmp); return $tmp; } /** *html to String * *

Transforme du code HTML en chaine de caractère à partir de $src

* */ function htmlToStr() { $tmp=$this->src; $tmp=unhtmlentities($tmp); $tmp=str_replace("
",chr(13).chr(10),$tmp); //$tmp = addslashes(stripslashes($tmp)); return $tmp; // retourne une chaine } /** *StrCut * *

Récupere le debut d'une chaine de caractere (nbChar)

* * @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 * *

Récupere le debut du texte d'une chaine html (nbChar)

* * @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)." ..."; } //$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)." ..."; } //$tmp = addslashes(stripslashes($tmp)); return $tmp; } /** *Str To Sql * *

Transforme une chaine de caractères en chaine Sql à partir de $src

* *

Utilisation de htmlentities

* */ function strToSql() { $tmp=$this->src; $tmp=htmlentitiesconv($tmp); //stockés en htmlentities return $tmp; } /** *Html To Sql * *

Transforme une chaine de caractères au format HTML à partir de $src

* */ function htmlToSql() { $tmp=$this->src; return $tmp; } /** *SQL To Str * *

Transforme une chaine de caractères à partir de $src

* */ function sqlToStr() { $tmp=$this->src; return $tmp; } /** *SQL To Html * *

Transforme une chaine de caractères au format HTML à partir de $src

* */ 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 *

Decryptage de la source de donnée à partir d'une clé

* * @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 *

Encryptage de la source de donnée à partir d'une clé

* * @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 *

Enléve tous les characteres spéciaux

* * @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 *

Enléve tous les characteres spéciaux

* * @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 *

Enléve tous les characteres spéciaux

* * @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 *

Enléve toutes les tags HTML

* * @return chaine * @desc chaine chaine sans caractéres spéciaux */ function stripHtmlTags() { $tmp=strip_tags($this->src); $tmp=unhtmlentities($tmp); return $tmp; } } ?>