<?php
|
/*---------------------------------------------------------------*/
|
/*
|
Titre : Classe string regroupant diverses fonction string PHP
|
|
URL : https://phpsources.net/code_s.php?id=498
|
Auteur : bemale
|
Date édition : 17 Mars 2009
|
*/
|
/*---------------------------------------------------------------*/
|
/*
|
* Created on 09 Mars 2009
|
*
|
* Une petite classe string pour la nostalgie elle sert à pas grand
|
* chose mais ça m'amuse
|
*
|
* J'ai pompé le nom des methodes de la classe java String
|
* http://www.siteduzero.com/tutoriel-3-10328-les-methodes-de-classe.html
|
/******************************************************************************/
|
class string
|
{
|
var $chaine;
|
|
/*
|
* Constructor
|
*/
|
function string($chaine='')
|
{
|
// si c'est un objet de la classe string
|
if (is_a($chaine,'string'))
|
return $this->chaine=$chaine->get_chaine();
|
elseif(is_string($chaine))
|
return $this->chaine=$chaine;
|
else
|
return false;
|
}
|
|
|
/*
|
* Fonctions diverses et avariées
|
*/
|
function extraire_chaine_entre($chaine_deb,$chaine_fin)
|
{
|
$extr='';
|
$debut = strpos($this->chaine,$chaine_deb);
|
$fin = strrpos($this->chaine,$chaine_fin);
|
$extr = substr($this->chaine,$debut+strlen($chaine_deb),$fin-($debut+
|
strlen($chaine_deb)));
|
return new string($extr);
|
}
|
|
/*
|
* Mise en minuscule
|
*/
|
function toLowerCase()
|
{
|
return new string(strtolower($this->chaine));
|
}
|
|
/*
|
* Mise en majuscule
|
*/
|
function toUpperCase()
|
{
|
return new string(strtoupper($this->chaine));
|
}
|
|
/*
|
* Première lettre de la chaîne en majuscule
|
*/
|
function ucfirst() {
|
return new string(ucfirst($this->chaine));
|
}
|
|
/*
|
* Première lettre de chaque mots de la chaîne en majuscule
|
*/
|
function ucwords() {
|
return new string(ucwords($this->chaine));
|
}
|
|
|
/*
|
* Concaténer la chaine de l'instance avec une autre chaine
|
*/
|
function concat($variable)
|
{
|
if (is_a($variable,'string'))
|
return new string($this->chaine.$variable->get_chaine());
|
|
elseif (is_string($variable))
|
return new string($this->chaine.$variable);
|
else
|
return new string($this->chaine);
|
|
}
|
|
/*
|
* Longueur de la chaîne
|
*/
|
function length()
|
{
|
return strlen($this->chaine);
|
}
|
|
/*
|
* Vérifie si les deux chaines sont identiques
|
*/
|
function equals($variable)
|
{
|
// si c'est un objet de la classe string
|
if (is_a($variable,'string'))
|
return ($this->chaine == $variable->get_chaine());
|
elseif(is_string($variable))
|
return ($this->chaine == $variable);
|
else
|
return false;
|
}
|
|
/*
|
* renvoi le caractère de la position 0 est le premier caractére
|
*/
|
function charAt($pos)
|
{
|
if ($pos>=0 && $pos<=$this->length()-1)
|
return substr($this->chaine,$pos,1);
|
else
|
return false;
|
}
|
|
/*
|
* Comme son nom l'indique, elle permet d'extraire une sous-chaîne de
|
* caractères d'une chaîne de caractères.
|
* Cette méthode prend 2 entiers comme arguments.
|
* Le premier définit le début de la sous-chaîne à extraire inclus,
|
* le deuxième correspond au dernier caractère à extraire exclus.
|
* Et le premier caractère est aussi le numéro 0.
|
*/
|
function substring($deb,$fin)
|
{
|
if (($deb>=0 && $deb<=($this->length()-1)) && ($deb<$fin) && ($fin<=(
|
$this->length())))
|
{
|
return new string(substr($this->chaine,$deb,($fin-$deb)));
|
}
|
else
|
return false;
|
}
|
|
/*
|
* Retourne la position dans la chaine de la chaîne passé en paramètre
|
*/
|
function indexOf($chaine)
|
{
|
return (!(strpos($this->chaine,$chaine) === false))?(strpos($this->
|
chaine,$chaine)):-1;
|
}
|
|
/*
|
* Retourne la dernière position dans la chaine de la chaîne passé en
|
paramètre
|
*/
|
function lastIndexOf($chaine)
|
{
|
|
//Test de la valeur false pour éviter de renvoyer -1 si le caractère est en
|
// 1° place
|
return ((strrpos($this->chaine,$chaine) === false))?-1:(strrpos($this->
|
chaine,$chaine));
|
}
|
|
/*
|
* Suppression d'une sous string dans la chaine accepte les string ou les
|
objets 'string'
|
*/
|
function supprime($substr)
|
{
|
// si c'est un objet de la classe string
|
if (is_a($substr,'string'))
|
{
|
$substr = $substr->get_chaine();
|
}
|
$long = strlen($substr);
|
$tmp = new string($this->chaine);
|
|
while ($tmp->indexOf($substr) != -1)
|
{
|
if ($tmp->indexOf($substr)!=0)
|
$tmp = $tmp->substring(0,$tmp->indexOf($substr))->concat($tmp->
|
substring($tmp->indexOf($substr)+$long,$tmp->length()));
|
else
|
$tmp = $tmp->substring($tmp->indexOf($substr)+$long,$tmp->length
|
());
|
}
|
return $tmp;
|
}
|
|
/*
|
* Remplace un motif par un autre
|
*/
|
function remplace ($chaine_remplace,$chaine_remplacante)
|
{
|
// si c'est un objet de la classe string
|
if (is_a($chaine_remplace,'string'))
|
$chaine_remplace = $chaine_remplace->get_chaine();
|
// si c'est un objet de la classe string
|
if (is_a($chaine_remplacante,'string'))
|
$chaine_remplacante = $chaine_remplacante->get_chaine();
|
return new string(str_ireplace($chaine_remplace,$chaine_remplacante,
|
$this->chaine));
|
}
|
|
/*
|
* Getteur
|
*/
|
function get_chaine()
|
{
|
return $this->chaine;
|
}
|
|
|
/*
|
* Renvoi la chaine sous forme de tableau
|
*/
|
function get_tab()
|
{
|
return str_split($this->chaine);
|
}
|
|
}
|
?>
|
|
|