Cheatsheet Php String
Dans ce post, je vous regroupe les fonctions natives les plus utilisées en php mais aussi certaines fonctions plus custom mais bien utiles.
Une nouvelle fois, je ne réinvente pas la roue et ne peux que vous conseiller de bien consulter la documentation officielle.
Fonction native
Les fonctions natives font partie de php et sont donc appelable d’où vous voulez!
strlen
Vous retourne la taille de la chaîne passée en paramètre.
https://www.php.net/manual/fr/function.strlen.php
$str = 'azerty';
echo strlen($str); // 6
str_replace
Permet de remplacer toutes les occurrences d’un string dans un autre string.
https://www.php.net/manual/fr/function.str-replace.php
$str = "Hello world!";
$str = str_replace("world", "John", $str);
echo $str; // Hello John!
substr
Retourne une partie d’un string en fonction de la position et départ et la longueur (optionnel).
https://www.php.net/manual/fr/function.substr.php
$str = "Hello world!";
echo substr($str, 0, 5); // Hello
echo substr($str, 5); // world
explode
Transformer simplement un string en array à condition d’avoir un élément, telle qu’une virgule, permettant de faire la séparation.
https://www.php.net/manual/fr/function.explode.php
$str = "Bulbizarre, Salamèche, Carapuce";
$arr = explode(",", $str);
echo $arr[0]; // Bulbizarre
echo $arr[1]; // Salamèche
implode
Fonction inverse d’explode(), elle vous permet de créer un string sur base d’un array et d’un élément de séparation.
https://www.php.net/manual/fr/function.implode.php
$arr = array("Bulbizarre", "Salamèche", "Carapuce");
$str = implode(",", $arr);
echo $str; // Bulbizarre,Salamèche,Carapuce
htmlspecialchars
Simple conversion des caractères spéciaux en leur équivalent html.
https://www.php.net/manual/fr/function.htmlspecialchars.php
echo htmlspecialchars(""); // <balise>
addslashes
Permet d’escape les guillemets simples ('), guillemets doubles (") et antislash (\) en rajoutant un antislash.
https://www.php.net/manual/fr/function.addslashes
echo addslashes("It’s magic !"); // It\’s magic !
strip_tags
Nettoie un string en retirant les balises HTML et PHP.
https://www.php.net/manual/fr/function.strip-tags.php
$str = strip_tags("Bonjour John Doe
");
echo $str; // Bonjour John Doe
Il est possible de spécifier des balises qui ne doivent pas être supprimée
$str = strip_tags("Bonjour John Doe
", "");
echo $str; //
Bonjour John Doe
strrev
Inverse une chaîne
https://www.php.net/manual/fr/function.strrev.php
$str = addslashes("Elu par cette crapule");
echo $str; // eluparc ettec rap ulE
ucfirst
Transforme le premier caractère en majuscule
https://www.php.net/manual/fr/function.ucfirst.php
$str = "hello";
echo ucfirst($str); // Hello
ucwords
Transforme le premier caractère de chaque mot en majuscule.
https://www.php.net/manual/fr/function.ucwords.php
$str = "bourg palette";
echo ucwords($str); // Bourg Palette
strtoupper
Transforme tout un string en majuscule.
https://www.php.net/manual/fr/function.strtoupper.php
$str = "hello";
echo strtoupper($str); // HELLO
strtolower
Transforme tout un string en minuscule.
https://www.php.net/manual/fr/function.strtolower.php
$str = "Hello";
echo strtolower($str); // hello
trim
Supprime les espaces (" "), tabulations ("\t"), retours à la ligne ("\n"), retours chariot ("\r"), caractères nul ("\0") et tabulations verticale ("\v") en début et fin de string.
https://www.php.net/manual/fr/function.trim.php
$str = " Hello world! ";
echo trim($str); // Hello world!
Fonction custom
Les fonctions suivantes font partie de ma boîte à outils, elles permettent des actions utiles et courantes qui ne sont malheureusement pas natives à php.
Generer un string aléatoire
Il n’existe malheureusement pas de fonction pour générer un simple string aléatoire de X caractères.
Je vous propose donc cette fonction qui prend en paramètre la longueur du string généré et en second paramètre optionnel un string contenant les caractères à utiliser pour la génération.
function randString($length, $charset='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789')
{
$str = '';
$count = strlen($charset);
while ($length--) {
$str .= $charset[mt_rand(0, $count-1)];
}
return $str;
}
echo randString(10); // nbza5uiR5N
echo randString(10, 'Az12'); // 1z22A1z1Az
Rendre un string compatible pour un nom de fichier ou une url
Les urls ont certaines contraintes importantes à respecter: pas d’espace, pas d’accent (plus tout à fait vrai mais bon), pas de caractères spéciaux,...
Une recherche rapide vous mènera vers la fonction urlencode() qui fera le job… mais votre texte sera difficilement lisible…
echo urlencode("Ça marche mais c'est pas magique…");
// %C3%87a+marche+mais+c%27est+pas+magique...
Et comme vous pouvez le voir, les points sont toujours là.
Je vous propose donc une petite fonction qui cumule plusieurs étape afin de nettoyer un string pour le rendre "url friendly".
public function friendlyName($str) {
// Enlève les espaces avant et après
$str = trim($str);
// Remplace les espaces par des tirets
$str = str_replace(' ', '-', $str);
// Remplace les lettres accentuées par des lettres standards
$str = strtr(utf8_decode($str), utf8_decode('àáâãäçèéêëìíîïñòóôõöùúûüýÿÀÁ ÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ'), 'aaaaaceeeeiiiinooooouuuuyyAAAAACEEEEIIIINOOOOOUUUUY');
// Enlève les caractères non alpha-numérique à l'exception du tiret et de l’underscore
$str = preg_replace('/[^A-Za-z0-9\-_]/', '', $str);
return $str;
}
echo $this->friendlyName("Ça marche et c'est magique...");
// Ca-marche-et-cest-magique
Simple efficace et votre texte est toujours lisible !