Accueil
Accueil Le Club Delphi Kylix C C++ Java J2EE DotNET & C# Visual Basic Access Pascal Dev Web PHP ASP XML UML SQLSGBD Windows Linux Autres
logo

precedent    sommaire    suivant   


Comment ajouter/supprimer les antislashes surnuméraires ?
auteurs : Cyberzoide, Kerod
La fonction addslashes() ajoute des antislashes surnuméraires dans une chaîne. Par exemple : transforme "'" en "\'".
Exemple :
$texte = "L'utilisation de addslashes";
echo addslashes($texte); //Affiche L\'utilisation de addslashes
La fonction stripslashes() supprime les antislashes surnuméraires. Par exemple : transforme "\\" en "\".
Exemple :
echo stripslashes($_POST['texte']);

Comment coloriser le code source d'un script ?
auteur : Cyberzoide
Pour cela il suffit d'utiliser la fonction highlight_file($file) ou son alias show_source($file) qui affiche à l'écran le contenu du fichier $fichier en ayant colorisé le code source PHP.

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

Comment compléter une chaîne de caractères avec une autre chaîne ?
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); //Affiche TEST avec que des espaces à la fin
echo str_pad($chaine, 10 , "++"); //Affiche TEST++++++
echo str_pad($chaine, 10 , "++",STR_PAD_LEFT); //Affiche ++++++TEST
echo str_pad($chaine, 10 , "++",STR_PAD_RIGHT); //Affiche TEST++++++
echo str_pad($chaine, 10 , "++",STR_PAD_BOTH); //Affiche +++TEST+++

Comment concaténer des chaînes des caractères ?
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;

Comment convertir une chaîne de caractères en nombre ?
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.


Comment couper une chaîne de caractères trop longue ?
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
//$str est la chaîne de caractères et $nb le nombre de caractères maximum à afficher.
function tronque($str, $nb = 150) 
{
	// Si le nombre de caractères présents dans la chaine est supérieur au nombre 
	// maximum, alors on découpe la chaine au nombre de caractères 
	if (strlen($str) > $nb) 
	{
		$str = substr($str, 0, $nb);
		$position_espace = strrpos($str, " "); //on récupère l'emplacement du dernier espace dans la chaine, pour ne pas découper un mot.
		$texte = substr($str, 0, $position_espace);  //on redécoupe à la fin du dernier mot
		$str = $str."..."; //puis on rajoute des ...
	}
	return $str; //on retourne la variable modifiée
}

Comment enlever les balises html/php dans une chaine
auteur : Kerod
Pour enlever les balises HTML d'une chaîne de caractères on utilise la fonction strip_tags() qui retourne une chaîne après avoir supprimé toutes les balises PHP et HTML.
Exemple :
$chaine = "<p>Ceci est <br/> un test</p>";
echo strip_tags($chaine); //Affiche(Renvoie) Ceci est un test
echo strip_tags($chaine, "<br/>"); //Affiche(Renvoie) Ceci est <br/> un test

Comment extraire une partie d'une chaîne de caractères ?
auteur : Cyberzoide
La fonction substr($str, $debut, $taille) retourne une sous-chaîne de la chaîne d'origine $str par recopie de $taille caractères à partir de la position $debut+1.

Exemple :
<?php
echo substr("Bonjour!", 3, 4); // affiche 'jour'
?>

Comment insérer une chaîne de caractères dans une autre tous les x caractères ?
auteur : Kerod
Pour insérer une chaîne de caractères dans une autre déjà existante, on peut utiliser la fonction wordwrap() qui retourne la chaîne initiale, après avoir inséré une chaîne de caractères tous les x caractères.
Exemple :
Insertion du caractère - tous les 2 caractères
$string = '0123456789';
echo wordwrap($string, 2, "-", 1);
lien : faq Comment insérer une chaîne de caractères dans une autre tous les x caractères ?

Comment morceller une chaîne ?
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.


Comment remplacer les retours à la ligne (\\n) par la balise HTML <BR/>?
auteur : Eric Berger
Il faut se servir de la fonction nl2br() comme suit :
$chaineAvecBR = nl2br($chaineSansBR);
Difficile de faire plus simple.


Comment remplacer/supprimer un mot/caractère dans une chaîne ?
auteurs : Kerod, Forum PHP
Il existe plusieurs méthodes pour réaliser cette opération, mais la plus courante est l'utlisation de la fonction str_replace() qui remplace/enlève toutes les occurrences toutes les occurrences d'une chaîne dans la chaîne voulue.

Exemples :
Remplacement d'une chaîne
$var = "Ici c'est la FAQ HTML";  //Chaîne initiale
$toreplace = 'HTML';  //Chaîne à remplacer
$remplacement = 'PHP';  //Chaîne de remplacement
$var = str_replace($toreplace, $remplacement, $var); 
echo $var; //Affiche Ici c'est la FAQ PHP
Suppression d'un caractère
$var = 'Jean-Michel'; //Chaîne initiale
$var = str_replace('-', '', $var);  //Supprime tous les -
lien : faq Comment enlever un caractère/ensemble de caractères d'une chaîne ?

Comment savoir si une chaîne est incluse dans une autre ?
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";
//Affiche 2, donc $str2 est dans $str1.
if(strpos($str1, $str2) != FALSE)
{
	echo $str1 . ' contient ' . $str2; 
}

$str1 = "abcdef";
$str2 = "CDE";
//Affiche rien car strpos est sensible à la casse.
if(strpos($str1, $str2) != FALSE)
{
	echo $str1 . ' contient ' . $str2;  
}

Comment supprimer les espaces d'une chaîne ?
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 :
echo trim("Bonjour!","aeiouy"); // affiche "Bnjr!"
A noter que cette plage de caractères peut être un intervalle défini avec ...


Comment surligner une chaîne ?
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.


Conversion d'une chaîne en minuscules/majuscules
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
$str = "Bonjour à tous !";
echo strtoupper($str); // affiche "BONJOUR A TOUS !"
echo strtolower($str); // affiche "bonjour à tous !"
echo ucwords($str); // affiche "Bonjour A Tous!"
Attention, les caractères accentués ne sont pas toujours passés en majuscules, car cela dépend de la configuration locale du serveur.


Pourquoi ma variable n'est pas interprétée dans une chaine ?
auteurs : Eusebius, Jérôme
Vous avez écrit ce qui suit et l'affichage n'est pas celui attendu
$variable = 'valeur' ;
echo 'chaine $variable'; // affiche : 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; // affiche : chaine valeur
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" ; // affiche : chaine valeur

$tableau['cle'] = 'valeur2';
echo "test {$tableau['cle']}" ; // affiche : test valeur2
3) La troisième solution est l'utilisation de la syntaxe HereDoc
$variable = 'valeur' ;
echo <<<identifiant
chaine $variable
identifiant;

precedent    sommaire    suivant   

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.

Vos questions techniques : forum d'entraide Accueil - Publiez vos articles, tutoriels, cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter - Copyright 2000..2005 www.developpez.com