| auteurs : Cyberzoide, Kerod | La fonction addslashes() ajoute des antislashes surnuméraires dans une chaîne. Par exemple : transforme "'" en "\'". Exemple :
La fonction stripslashes() supprime les antislashes surnuméraires. Par exemple : transforme "\\" en "\".
Exemple :
|
| auteur : Cyberzoide |
On peut faire de même avec une chaîne de caractères via highlight_string($str [, $test]) qui affiche la chaîne $str colorisée, et retourne true ou false si le traitement s'est ou non bien passé. Si l'argument optionnel $test est à true, alors la chaîne colorisée n'est pas affichée à l'écran mais retournée.
Le fichier de configuration php.ini définit les couleurs de colorisation comme suit : highlight.string = #DD0000
highlight.comment = #FF8000
highlight.keyword = #007700
highlight.bg = #FFFFFF
highlight.default = #0000BB
highlight.html = #000000 |
|
| auteurs : Forum PHP, Kerod |
Pour compléter une chaîne de caractères jusqu'à une taille précise, il faut utiliser la fonction str_pad() qui retourne une chaîne complétée à droite, à gauche ou dans les deux sens, avec la chaîne passée en paramètre jusqu'à ce qu'elle atteigne une taille donnée.
Syntaxe :
string str_pad(string chaine, int longueur, string chaine_a_inserer, int type_ajout) |
type_ajout correspond au type suivant :
- STR_PAD_RIGHT : uniquement à droite
- STR_PAD_LEFT : uniquement à gauche
- STR_PAD_BOTH : à gauche et à droite
Exemple :
$chaine = "TEST";
echo str_pad($chaine, 10);
echo str_pad($chaine, 10 , "++");
echo str_pad($chaine, 10 , "++",STR_PAD_LEFT);
echo str_pad($chaine, 10 , "++",STR_PAD_RIGHT);
echo str_pad($chaine, 10 , "++",STR_PAD_BOTH); |
|
| auteur : Cyberzoide | L'opérateur point ( . ) (équivalent du + du Java) permet de concaténer deux chaînes de caractères. Au besoin, PHP procède au cast implicite des variables non chaînes de caractères.
Syntaxe :
$chaine = $chaine . $str;
$chaine .= $str; |
Ces deux syntaxes sont équivalentes.
Exemples :
echo "Bonjour ".$nom;
$str .= $toto;
$adresse = $num.$rue.$cp.$ville; |
|
| auteur : Forum PHP |
Les fonctions intval(),
floatval()
(ou doubleval)
permettent de convertir, respectivement, une chaîne en un
nombre entier et à virgule flottante.
Exemple d'utilisation :
$chaine = '5';
echo $nombre = intval($chaine) + 2;
echo '<br />';
echo $nombre = (int) $chaine + 2;
echo '<br /><br />';
$chaine = '5.532';
echo $nombre = floatval($chaine) + 2;
echo '<br />';
echo $nombre = (float) $chaine + 2;
echo '<br /><br />'; |
Rappel : Les variables php ont un type dynamique. Et donc on
peut se passer de ces fonctions pour effectuer des calculs.
Mais l'utilisation de ces fonctions, pour effectuer un cast,
peut s'avérer utile.
|
| auteur : Forum PHP |
Dans certains cas, on souhaite limiter le nombre de caractères
d'une chaîne trop longue, en la coupant.
Pour ce faire, on peut utiliser le code suivant :
Couper une chaîne de caractères et ajouter des ... à la fin |
function tronque($str, $nb = 150)
{
if (strlen($str) > $nb)
{
$str = substr($str, 0, $nb);
$position_espace = strrpos($str, " ");
$texte = substr($str, 0, $position_espace);
$str = $str."...";
}
return $str;
} |
|
| auteur : Cyberzoide | La fonction explode($delim, $str) permet de scinder la chaîne $str en une multitude de sous-chaînes qui composeront le tableau retourné par la fonction. Les sous-chaînes sont délimitées par le séparateur $delim dans la chaîne $str.
Exemple :
<?
$str = "451;2001;45;987;51";
$tab = explode(";",$str);
print_r($tab);
?> |
Ainsi le tableau $tab contient 5 éléments.
|
| auteur : Eric Berger |
Il faut se servir de la fonction nl2br() comme suit :
$chaineAvecBR = nl2br($chaineSansBR); |
Difficile de faire plus simple.
|
| auteur : Forum PHP |
Pour savoir si une chaîne en contient une autre, on utilise
la fonction strpos()
qui retourne la position numérique de la première occurrence
de la chaîne de caractères.
Exemple d'utilisation :
$str1 = "abcdef";
$str2 = "cde";
if(strpos($str1, $str2) != FALSE)
{
echo $str1 . ' contient ' . $str2;
}
$str1 = "abcdef";
$str2 = "CDE";
if(strpos($str1, $str2) != FALSE)
{
echo $str1 . ' contient ' . $str2;
} |
|
| auteur : Cyberzoide |
- ltrim($str) : retourne la chaîne $str sans ses espaces de début
- rtrim($str) : retourne la chaîne $str sans ses espaces de fin
- trim($str) : retourne la chaîne $str sans ses espaces de début et de fin
Pour être tout à fait exact, ce ne sont pas que les espaces qui sont supprimés, mais tous les caractères invisibles :
- " " (ASCII 32 (0x20)), un espace ordinaire.
- " " (ASCII 9 (0x09)), une tabulation.
- "\n" (ASCII 10 (0x0A)), une nouvelle ligne (line feed).
- "\r" (ASCII 13 (0x0D)), un retour chariot (carriage return).
- "\0" (ASCII 0 (0x00)), le caractère NUL.
- "\x0B" (ASCII 11 (0x0B)), une tabulation verticale.
Un second argument optionnel permet d'imposer la liste des caractères à supprimer. Exemple qui supprime toutes les voyelles :
A noter que cette plage de caractères peut être un intervalle défini avec ...
|
| auteur : Cyberzoide |
Les expressions régulières permettent facilement ce genre de traitement via les parenthèses capturantes.
function surligne($str,$query) {
return eregi_replace("($query)","<b style=\"background-color:yellow;\">\\1</b>",$str);
} |
Cette fonction surligne (et met en gras) la sous-chaîne $query de la chaîne $str.
Ici on remplace toute sous-chaîne de $str vérifiant le motif défini par $query par une autre chaîne comportant la mise en forme et la sous-chaîne trouvée.
|
| auteur : Cyberzoide |
- strtoupper() convertit une chaîne en majuscules
- strtolower() convertit une chaîne en minuscules
- ucfirst() convertit le premier caractère d'une chaîne en majuscule
- ucwords() convertit le premier caractère de chaque mot d'une chaîne en majuscule
Attention, les caractères accentués ne sont pas toujours passés en majuscules, car cela dépend de la configuration locale du serveur.
|
| auteurs : Eusebius, Jérôme | Vous avez écrit ce qui suit et l'affichage n'est pas celui attendu $variable = 'valeur' ;
echo 'chaine $variable'; |
Vous attendiez chaine valeur. L'explication est très simple : les variables ne sont pas interprétées dans les chaines entre simple quotes.
Vous avez donc trois solutions : 1) La concaténation $variable = 'valeur' ;
echo 'chaine ' . $variable; |
2) Utiliser des doubles quotes (guillemets). Les variables sont interprétées dans les chaînes entre double quotes, mais ce n'est pas recommandé d'un point de vue performances. Si l'on utilise quand même des variables dans des chaînes entre double quotes, les entrées de tableaux doivent être entourés d'accolades et il n'est pas possible d'utiliser les membres d'objets ($obj->machin). $variable = 'valeur' ;
echo "chaine $variable" ;
$tableau['cle'] = 'valeur2';
echo "test {$tableau['cle']}" ; |
3) La troisième solution est l'utilisation de la syntaxe HereDoc$variable = 'valeur' ;
echo <<<identifiant
chaine $variable
identifiant; |
|
Consultez les autres F.A.Q's
Les sources présentés sur cette pages sont libre de droits,
et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs.
Copyright ©2003
Developpez LLC. Tout droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de
l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans
de prison et jusqu'à 300 000 E de dommages et intérets.
Cette page est déposée à la SACD.
|