Voici quelques fonctions qui vous aideront pour programmer en PHP.
Pour toute question, n'hésitez pas à utiliser les
forums, nous vous répondrons au plus vite.
Les constantes : opérations principales sur les constantes, constantes prédéfinies de php.
Les variables : opérations principales sur les variables, portée d'une variable, notion de sous variable.
Les nombres : conversions de nombre, formatage de nombres, parité d'un nombre, nombre aléatoire.
Les chaînes de caractère : taille d'une chaine, concaténation, remplacement d'occurences, changement de casse, suppressions de caractères spéciaux (espaces, tags, antislash), découpage d'un texte en fonction de séparateurs, conversion d'un caractère en code ASCII, récupération de caractères d'une chaîne, recherche de la position d'une occurence dans un texte, inversion des caractères d'une chaine, compter le nombre d'occurences récurrentes dans une chaîne, ajout d'un retour à la ligne, répétition d'une chaîne.
Les tableaux : nombre d'éléments d'un tableau, tri d'un tableau, suppression de doublons dans un tableau, fusion de tableaux, inversion d'un tableau, transformation d'un tableau en chaîne, obtenir la plus petite ou la plus grande valeur d'un tableau, obtenir le premier / dernier élément d'un tableau, comparaison de tableaux.
A voir aussi : PHP et MySQL... les fonctions relatives à la base de données.
Les constantes |
Opérations principales sur les constantes
Pour savoir si une constante est définie il suffit d'utiliser la fonction defined() : if (defined($variable)) {...}
On déclare une constante par fonction define() : define ("cc", "conseil & création").
Précision : php tient compte, comme pour les variables, de la casse des noms de constante. Il est cependant possible (uniquement pour les constantes) de paramétrer chaque constante pour que la casse ne soit pas prise en compte. Dans ce cas on écrit : define ("cc", "conseil & création",1).
Attention : comme son nom l'indique, une constante ne peut pas être modifiée.
- si on définit d'abord cc par : define ("cc", "conseil & création"),
- define ("cc", "conseil-creation.com") n'aura aucun effet
Les variables |
Opérations principales sur les variables
Pour savoir si une variable est définie il suffit d'utiliser la fonction isset() : if (isset($variable)) {...}
La fonction unset() permet de détruire une variable existante afin de libérer de la mémoire.
On récupère le type d'une variable par la fonction gettype() : gettype($variable).
Portée d'une variable
Lorsque vous déclarez une variable dans une fonction, elle n'est définie que pour cette fonction. On dit de cette variable qu'elle est locale. Par contre, lorsqu'une variable est définie directement dans le corps du script, cette variable est dite globale :
<?
$chaine1 = "bienvenue";
function c&c() { $chaine="conseil & création"; }
?>
Dans ce script, $chaine1 est globale et chaine2 est locale.
Précision : il peut être intéressant de rendre statique
une variable définie localement. En effet, non seulement une variable
locale n'est pas utilisable en dehors de la fonction, mais elle n'est plus utilisable
lors d'un appel ultérieur à cette même fonction. C'est pour
remédier à ce problème que l'on rend un variable locale
statique :
- au lieu d'écrire : $variable="...",
- on écrit : static $variable="...".
Notion de sous variable
Une variable commence toujours par le signe $ . Des sous variables sont parfois très utiles : par exemple, pour tester si dans une base de données $reponse1, $reponse2... $reponseN sont égales à 1, on peut utiliser cette boucle :
while($rec=mysql_fetch_array($query)){
$n=$rec['id'];
$var="reponse".$n;
if ($$var=="1") {echo("<input type='hidden' name='reponse".$n."'
value='1'>");}
}
Les nombres |
Conversions
On convertit le type par la fonction settype() : settype ($nombre, integer);
Conversion binaire - décimal par les fonctions bindec()
et decbin()
:
- decbin(123) = 1011
- bindec(1011) = 123
Conversion hexadécimal - décimal par les fonctions hexdec()
et dechex():
- dechex(123) = 20
- hexdec(20) = 123
Formatage
A l'aide de la fonction number_format()
: number_format($nombre, 3);
Par exemple, si $nombre = 6,55957, la fonction renvoie 6,559
Parité d'un nombre
if ($nombre & 1) teste si $nombre est impair. Donc :
- if ($nombre & 1) {echo("impair")} else {echo("pair")}
Générer un nombre aléatoire
rand(min,
max) génère un nombre entre min et max.
Les chaînes |
Taille d'une chaine
La fonction strlen() permet de connaitre la taille d'une chaîne.
Concaténation
soient $chaine1 = "conseil & "; et $chaine2 = "creation";
Pour concaténer ces chaînes, on utilise simplement des points : $chaine1.$chaine2 donne conseil & création
Attention : on peut concaténer des chaînes dans une autre
chaîne. Mais attention aux " et ' :
1 - on peut écrire $chaine3="bienvenue sur ".$chaine1.$chaine2,
2 - on peut écrire $chaine3="bienvenue sur $chaine1$chaine2",
3 - on peut écrire $chaine3='bienvenue sur '.$chaine1.$chaine2,
4 - mais on ne peut pas écrire $chaine3='bienvenue sur $chaine1$chaine2'.
Dès que l'on utilise des apostrophes, il faut donc obligatoirement utiliser
les points.
Précision : si vous n'utilisez pas les points dans une chaîne
avec guillemets (exemple 2) :
- il n'est pas possible d'écrire $chaine3="$chaine1creation"
- il faut donc utiliser les pooints: $chaine3=$chaine1."creation"
En effet, la variable n'est plus chaine1 mais chaine1creation
Remplacement d'une occurrence
On remplace une occurence par la fonction str_replace()
:
- si $chaine="conseil & création";
- $chaine=str_replace("&", "et", $chaine);
Précisions :
- pour remplacer /n en <br>, il existe une fonction spécifique
: nl2br(),
- strtr($chaine,
"èëâ", "eea") remplacera les caractères accentués par leur
équivalent non accentué.
Changement de la casse d'une chaine de caractères
En utilisant les fonctions srttolower(),
strtoupper(),
ucfirst()
et ucwords()
:
- si $chaine = "cOnsEil & cRréaTion";
- strtolower($chaine) met la chaîne en minuscules
- strtoupper($chaine) met la chaîne en majuscules
- ucfirst($chaine) met le premier caractère en majuscule
- ucwords($chaine) met le premier caractère de chaque mot en majuscule
Attention : pour avoir Conseil & création ou Conseil &
Création il faut d'abord mettre la chaîne en minuscule :
- ucfirst(strtolower($chaine));
- ucwords(strtolower($chaine));
Suppression des espaces présents dans une chaîne
On peut supprimer les espaces :
- en début de chaîne par la fonction ltrim(),
- en fin de chaîne par la fonction rtrim(),
- en début et en fin de chaîne par la fonction trim()
Par exemple, avec la chaîne $chaine = " conseil & création
" :
- ltrim($chaine) donne "conseil & création ",
- rtrim($chaine) donne " conseil & création",
- trim($chaine) donne "conseil & création".
Suppression des tags présents dans un chaine
Il suffit d'utiliser la fonction strip_tags().
Précision : il est possible de préciser les tags à préserver
:
- soit $chaine = "<body><html><b><i>conseil & création</i></b></html></body>",
- $chaine= strip_tags($chaine,"<b>,<i>") donne "<b><i>conseil &
création</i></b>",
- $chaine= strip_tags($chaine) donne "conseil & création".
Suppression des anti-slash ( \ ) dans une chaine
Quand des anti-slash sont ajoutés à une chaine (avant les guillemets, les apostrophes ...), on peut les supprimer facilement par la fonction stripslashes().
Découpage d'une chaine
La fonction explode()
permet de couper une chaîne en fonction d'un séparateur défini.
- soit $chaine = "conseil & creation",
- $champs = explode (" & ", $chaine).
Attention : $champs contient les deux moitiés de la chaîne.
Pour les récupérer, on utilise une boucle :
<?
$boucle=0;
while ($boucle < sizeof($champs)) {
echo $chaine[$boucle];
echo "n";
$boucle++;
}
?>
On obtient alors deux chaînes :
- $chaine0 = "conseil";
- $chaine1 = "creation";
Précision : voir la fonction implode() dans la rubrique tableaux pour transformer un tableau en chaîne.
Conversion : code ASCII d'un caractère
Conversion code ASCII - caractère par les fonctions ord()
et chr()
:
- ord(a) = 63
- chr(63) = a
Récupération de caractères d'une chaine
Affichage de caractère précis : dans la chaîne "conseil & création", & est le caractère 8 . Plus généralement, le premier caractère d'une chaîne est est le caractère 0 et le dernier est obtenu par la fonction strlen(), vue ci-dessus. Pour obtenir le caractère 8 avec php, il suffit d'utiliser : $chaine[8], qui retournera &
Pour ne conserver qu'une partie des caractères de "conseil &
création", il suffit d'utiliser la fonction substr()
:
- soit $chaine = "conseil & création",
- substr($chaine,0,7) donne "conseil"
- substr($chaine,-8) donne "creation"
Trouver le numéro d'une chaine
Il faut pour celà utiliser la fonction strpos()
:
- $position = $strpos($chaine,$valeur),
- si la chaîne est trouvée, $position retourne le numéro
du premier caractère.
Attention : pour tester si la chaîne a bien été trouvée
:
- il faut utiliser if (!is_int($position)),
- il ne faut pas utiliser if (!$position).
Inversion d'une chaine
Pour inverser une chaîne, il faut utiliser la fonction strrev().
Compter le nombre d'occurrences dans une chaine
Pour compter le nombre de dans une chaîne, on utilise la fonction substr_count()
:
- soit $chaine = "conseil & creation",
- substr_count($chaine, "o") donne 2.
Ajout d'un retour à la ligne automatique tout les n caractères
Il suffit d'utiliser la fonction wordwrap(). La syntaxe est wordwrap($chaine, n) (où n = nombre de caractères).
Répéter une chaine
On peut bien sûr utiliser une boucle, mais il existe une fonction spécifique : str_repeat(). La syntaxe est str_repeat($chaine, n) (où n = nombre de répétitions).
Les tableaux |
Obtention du nombre d'éléments d'un tableau
En utilisant la fonction sizeof(). sizeof($tableau);
Précision : dans un tableau multidimensionnel, chaque élément est lui-même un tableau. Il suffit donc d'appliquer la fonction à la dimension qui nous intéresse : sizeof($tableau[3]);
Trier un tableau
En utilisant les fonctions sort(),
rsort(),
asort()
et arsort()
: :
- si $tableau = array("conseil","&","creation"),
- sort($tableau)
Suppression des doublons dans un tableau
Avec PHP4, vous pouvez utiliser la fonction array_unique().
Fusion de tableaux
Avec PHP4, vous pouvez utiliser la fonction array_merge().
Inversion d'un tableau
Avec PHP4, vous pouvez utiliser la fonction array_reverse().
Transformer un tableau en chaîne
En utilisant la fonction implode().
La fonction implode()
permet de concaténer les valeurs d'un tableau sous forme de chaîne
:
- soit $tableau = array("conseil", " & ", "creation"),
- $chaine = implode ($tableau).
Passer un tableau en argument d'un script à un autre
Ceci est impossible directement, mais peut bien sûr être réalisé en utilisant les fonctions implode() et explode() vues précédemment. Tout d'abord on groupe les éléments du tableau en une chaine (en les séparant d'un caractère bien défini). La chaîne est ensuite passée au second script qui se chargera de reconstituer le tableau avec la fonction explode().
Comment obtenir la plus petite / plus grande valeur d'un tableau
A l'aide des fonctions min() et max().
Affichage du premier / dernier élément d'un tableau
A l'aide des fonctions reset() et end().
Comparaison de deux tableaux
La fonction array_diff()
retourne les éléments non communs aux deux tableaux.
La fonction array_intersect()
retourne les éléments communs aux deux tableaux.
Précision : récupération des valeurs :
- soient $result = array_intersect ($array1, $array2) ou $result = array_diff
($array1, $array2),
- on récupère les variables comme ceci :
<?
while (list($key, $val)=each($result)) {
echo $val."\n";
}
?>