Découvez les bases de PHP dans mon support de formation dédié à ce puissant langage orienté web.
Dans cette partie, nous allons utiliser ces quelques fonctions de texte.
Rassemble les éléments d'un tableau en une chaîne.
string implode ( string $glue , array $pieces )
Par défaut, une chaîne vide.
Le tableau de chaînes à rassembler.
Valeurs de retour
Retourne une chaîne contenant la représentation en chaîne de caractères de tous les éléments du tableau pieces, dans le même ordre, avec la chaîne glue, placée entre deux éléments.
Exemple 1
<?php
$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);
echo $comma_separated; // lastname,email,phone
// Chaîne vide lors de l'emploi d'un tableau vide :
var_dump(implode('hello', array())); // string(0) ""
?>
Exemple 2
<?php
// Permet de récupérer les différentes valeurs du
$_POST['id_appreciations_fk'] contenu dans des checkboxs, que nous séparrons par une virgule
$id_appreciations_fk=implode(',',$_POST['id_appreciations_fk']);
?>
Exercice implode, insérer plusieurs valeurs dans une table
Coupe une chaîne en segments.
array explode ( string $delimiter , string $string [, int $limit = PHP_INT_MAX] )
Le séparateur.
La chaîne initiale.
Si limit est défini et positif,le tableau retourné contient, au maximum, limit éléments, et le dernier élément contiendra le reste de la chaîne.
Si le paramètre limit est négatif, tous les éléments, excepté les -limit derniers éléments sont retournés.
Si limit vaut zéro, il est traité comme valant 1.
<?php
// Exemple 1
$Texte = "Bonjour tout le momde ";
$pieces = explode(" ", $Texte);
echo $pieces[0] ." "; // Bonjour
echo $pieces[1]; // tout
?>
Exemple 2
<?php
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
echo $user; // foo
echo $pass; // *
?>
Exemple 3 avec une boucle foreach
<?php
$id_q3_fk=explode(',',$row_Enquete['id_q3_fk']);
foreach ($id_q3_fk as $valeur){
$q3 = mysqli_query($bdd, "SELECT * FROM question3 WHERE id_q3=".$valeur."") or die(mysqli_error($bdd));
$row_q3 = mysql_fetch_assoc($q3);
echo $row_q3['question3']."<br>";
}
?>
Exercice avec explode Exercice avec explode et base de données
Remplace toutes les occurrences dans une chaîne
La valeur à chercher, autrement connue comme le masque. Un tableau peut être utilisé pour désigner plusieurs masques.
La valeur de remplacement à substituer aux valeurs trouvées. Un tableau peut être utilisé pour désigner plusieurs valeurs de remplacement.
La chaîne de caractéres ou le tableau sur lequel on va effectuer la recherche et le remplacement, aussi connu sous le nom de haystack.
Si subject est un tableau, alors le remplacement se fera sur chaque élément de celui-ci, et la valeur retournée sera aussi un tableau.
Si fournie, cette variable contiendra le nombre de remplacements effectués.
<?php
$texte="Voici un texte <br> Encore un texte<br> Encore un texte";
echo $texte;
?>
Maintenant on remplace le <br> par un espace avec str_replace :
<?php
$texte="Voici un texte <br> Encore un texte<br> Encore un texte";
// str_replace recherche la chaîne de caractére "<br>" et la remplace par " " rien
echo str_replace("<br>"," ",$texte);
?>
Trouve la position d'un caractére dans une chaîne.
Retourne la position numérique de la premiére occurrence de needle dans la chaîne de caractéres haystack.
Liste de paramétres
La chaîne dans laquelle on doit chercher.
Si needle n'est pas une chaîne, il est converti en entier, et utilisé comme caractére de code ASCII correspondant.
Le paramétre optionnel offset vous permet de spécifier à partir de quel caractére dans haystack vous souhaitez commencer la recherche. La position retournée sera toujours relative au début de la chaîne haystack.
Valeurs de retour
Retourne la position, sous la forme d'un entier. Si needle n'est pas trouvé, strpos() retournera FALSE.
<?php
$Chaine="Bonjour à tous";
$Affiche=strpos($Chaine,"j");
echo $Affiche;
?>
Retourne la partie extraite de la chaîne dans le segment de string défini par start et length ou FALSE si une erreur survient
substr ( string $string , int $start [, int $length ] )
string
La chaîne d'entrée.
start
Si start est positif, la chaîne retournée commencera au caractére numéro start, dans la chaîne string. Le premier caractére est numéroté zéro. Actuellement, dans la chaîne 'abcdef', le caractére à la position 0 est 'a', le caractére à la position 2 est 'c', et ainsi de suite.
Si start est négatif, la chaîne retournée commencera au caractére numéro start à compter de la fin de la chaîne string.
Si string est plus petit ou égal à start caractéres de long, FALSE sera retourné.
length
Si length est fourni et est positif, la chaîne retournée contiendra au plus length caractéres, en commençant à partir du caractére start (en fonction de la taille de la chaîne string).
Si length est fourni et négatif, alors le même nombre de caractéres sera omis, en partant de la fin de la chaîne string. Si start représente une position hors de la chaîne, une chaîne vide sera retournée.
Si le paramétre length est fourni et vaut 0, FALSE ou NULL, une chaîne vide sera retournée.
Si length est omis, la sous chaine commençant à partir de start jusqu'à la fin sera retournée.
Exemple avec start négatif
<?php
$rest = substr("abcdef", -1); // retourne "f"
$rest = substr("abcdef", -2); // retourne "ef"
$rest = substr("abcdef", -3, 1); // retourne "d"
?>
Exemple avec length négatif
<?php
$rest = substr("abcdef", 0, -1); // retourne "abcde"
$rest = substr("abcdef", 2, -1); // retourne "cde"
$rest = substr("abcdef", 4, -4); // retourne ""
$rest = substr("abcdef", -3, -1); // retourne "de"
?>
<?php
echo substr('abcdef', 1); // bcdef
echo substr('abcdef', 1, 3); // bcd
echo substr('abcdef', 0, 4); // abcd
echo substr('abcdef', 0, 8); // abcdef
echo substr('abcdef', -1, 1); // f
// Accéder à un simple caractére dans une chaîne
// peut également être réalisé en utilisant des crochets
$string = 'abcdef';
echo $string[0]; // a
echo $string[3]; // d
echo $string[strlen($string)-1]; // f
?>
Trouve la dernière occurrence d'un caractère dans une chaîne.
string strrchr ( string $haystack , mixed $needle )
Retourne le segment de la chaîne haystack qui commence avec la dernière occurrence de needle, jusqu'à la fin de la chaîne haystack.
Liste de paramètres :
haystack
La chaîne dans laquelle on doit chercher.
needle
Si needle contient plus d'un caractère, seul le premier sera utilisé. Ce comportement est différent de celui de strchr().
Si needle n'est pas une chaîne, il est converti en entier, et utilisée comme caractère de code ASCII correspondant.
Valeur de retour :
Retourne la portion de la chaîne, ou FALSE si needle n'est pas trouvé
<?php
$path = '/www/site1/index.php';
$filename = substr(strrchr($path, "/"), 1);
echo $filename; // "index.php"
?>
int strlen( string $string)
<?php
$str = 'abcdef';
echo strlen($str); // 6
$str = ' ab cd ';
echo strlen($str); // 7
?>
Permet de passer une chaîne de caractères en minuscule.
<?php
$prenom="CHRISTOPHE";
// Permet d'afficher le prénom en minuscule
strtolower($prenom);
?>
Permet de passer une chaîne de caractères en majuscule.
<?php
$prenom="christophe";
// Permet d'afficher le prénom en majuscule
strtoupper($prenom);
?>
Permet de passer la premère lettre d'une chaîne de caractères en majuscule.
<?php
$prenom="christophe";
// Permet d'afficher le prénom avec une majuscule en début
ucfirst($prenom);
?>
int strcmp ( string $str1 , string $str2 )
Notez que cette comparaison est sensible à la casse.
Valeurs de retour :
Retourne < 0 si str1 est inférieure à str2; > 0 si str1 est supérieure à str2, et 0 si les deux chaînes sont égales.
<?php
$var1 = "Bonjour";
$var2 = "bonjour";
if (strcmp($var1, $var2) !== 0) {
echo "$var1 n'est pas égal à $var2 par comparaison sensible à la casse.";
}
?>
Récupérer une chaine de caractère comprise entre deux autres
<?php
$chaine="Ciel couvert à très nuageux, pluie fble à mod. 0046/0230, 1150/1210 et 1325/1430, orage 1310/1550.";
$recup_caracteres = substr($chaine, strpos($chaine, "mod.")+4, strpos($chaine, ", orage")-strlen($chaine));
echo $recup_caracteres;
?>
0046/0230, 1150/1210 et 1325/1430