<?php
/*------------------------------*/
/*
Titre : Classe multi utilisation sur les chaines de caractères
Auteur : bemale
Date édition : 17 Mars 2009
Date mise a jour : 25 Fev 2026
Rapport de la maj:
- refactoring du code en PHP 7
- amélioration du code
- maintenance du code
- fonctionnement du code vérifié
- refactoring du code en PHP 8
- fonctionnement du code vérifié en PHP 8
- modification de la description
*/
/*------------------------------*/
class StringClass
{
private string $chaine;
/*
* Constructor
*/
public function __construct(string $chaine = '')
{
$this->chaine = $chaine;
}
/*
* Fonctions diverses et avariées
*/
public function extraire_chaine_entre(string $chaine_deb, string $chaine_fin
): StringClass
{
$debut = strpos($this->chaine, $chaine_deb);
$fin = strrpos($this->chaine, $chaine_fin);
if ($debut !== false && $fin !== false) {
$extr = substr($this->chaine, $debut + strlen($chaine_deb), $fin - (
$debut + strlen($chaine_deb)));
return new StringClass($extr);
}
return new StringClass('');
}
/*
* Mise en minuscule
*/
public function toLowerCase(): StringClass
{
return new
StringClass(strtolower($this->chaine));
}
/*
* Mise en majuscule
*/
public function toUpperCase(): StringClass
{
return new
StringClass(strtoupper($this->chaine));
}
/*
* Première lettre de la chaîne en majuscule
*/
public function ucfirst(): StringClass {
return new
StringClass(ucfirst($this->chaine));
}
/*
* Première lettre de chaque mot de la chaîne en majuscule
*/
public function ucwords(): StringClass {
return new
StringClass(ucwords($this->chaine));
}
/*
* Concaténer la chaine de l'instance avec une autre chaine
*/
public function concat($variable): StringClass
{
if ($variable instanceof StringClass) {
return new StringClass($this->chaine . $variable->get_chaine());
return new StringClass($this->chaine . $variable);
}
return new StringClass($this->chaine);
}
/*
* Longueur de la chaîne
*/
public function length(): int
{
}
/*
* Vérifie si les deux chaines sont identiques
*/
public function equals($variable): bool
{
if ($variable instanceof StringClass) {
return $this->chaine === $variable->get_chaine();
return $this->chaine === $variable;
}
return false;
}
/*
* Renvoie le caractère de la position donnée
*/
public function charAt(int $pos): string|false
{
if ($pos >= 0 && $pos < $this->length()) {
return $this->chaine[$pos];
}
return false;
}
/*
* Extrait une sous-chaîne de caractères
*/
public function substring(int $deb, int $fin): StringClass|false
{
if ($deb >= 0 && $fin <= $this->length() && $deb < $fin) {
return new
StringClass(substr($this->chaine, $deb, $fin - $deb));
}
return false;
}
/*
* Retourne la position de la chaîne passée en paramètre
*/
public function indexOf(string $chaine): int
{
return strpos($this->chaine, $chaine) !== false ? strpos($this->chaine,
$chaine) : -1;
}
/*
* Retourne la dernière position de la chaîne passée en paramètre
*/
public function lastIndexOf(string $chaine): int
{
return strrpos($this->chaine, $chaine) !== false ? strrpos($this->chaine
, $chaine) : -1;
}
/*
* Suppression d'une sous-chaîne
*/
public function supprime(string|StringClass $substr): StringClass
{
if ($substr instanceof StringClass) {
$substr = $substr->get_chaine();
}
return new
StringClass(str_replace($substr, '', $this->chaine));
}
/*
* Remplace un motif par un autre
*/
public function remplace(string|StringClass $chaine_remplace, string|
StringClass $chaine_remplacante): StringClass
{
if ($chaine_remplace instanceof StringClass) {
$chaine_remplace = $chaine_remplace->get_chaine();
}
if ($chaine_remplacante instanceof StringClass) {
$chaine_remplacante = $chaine_remplacante->get_chaine();
}
$chaine_remplacante, $this->chaine));
}
/*
* Getteur
*/
public function get_chaine(): string
{
return $this->chaine;
}
/*
* Renvoi la chaine sous forme de tableau
*/
public function get_tab(): array
{
}
}
?>